shadow-cljs

Stefan 2026-04-14T13:21:29.723349Z

@thheller Thanks for the blog post. I read that you replaced the internal dev http server. This change caused something to break for us, and I'm not sure why, if it's on our end or not, and also not how to debug this. So I'm posting this hoping that you can point me in the right direction, not asking you to spend lots of time on it... What's happening in a nutshell: I'm getting http://localhost:8888/login old behaviour: I get the contents of the file login/index.html new behaviour: I get a directory listing as the response (index.html + other files in the login dir) Note: we have special dev-http config:

:dev-http {8888 {:roots ["projects/frontal-server/resources/public"
                          "frontal-client/portfolio/public"
                          "classpath:public"]
                  :proxy-url ""
                  :handler eu.medicinemen.frontal-client.dev.shadow-dev-handler/handler}}
That port 8890 is our own web server, and the handler is a slightly modified copy of (an older version) of your built-in dev-http handler, but I'm getting the impression that it is never called. Do you have any ideas? Thank you!!

Jasper 2026-05-05T07:34:00.198019Z

@thheller Thanks! So it ended up being that we needed classpath:public for portfolio, and somehow there was another index.html on our classpath getting picked up. Anyway, we just dropped the dev-http server entirely (still using it for portfolio standalone). The webserver that used to be the :proxy-url now serves the shadow-generated files directly, hot reloading and all. So like you said we basically don't need the dev-http server at all anymore. 🎉

👍 1
❤️ 1
thheller 2026-04-14T17:26:19.806949Z

any specific reason you are using :dev-http here at all? can the server on localhost:8890 not serve static JS files?

thheller 2026-04-14T17:26:43.909659Z

the new http server has no functionality to serve directory listing, so that must come from the :proxy-url

thheller 2026-04-14T17:27:01.379159Z

where does login/index.html live?

thheller 2026-04-14T17:31:02.148129Z

I just tried it locally and everything works as expected