Two unrelated console errors. effect_update_depth_exceeded — mine, from the previous commit. The live-update effects both read and wrote the same state: FleetMap's health patch builds a new `graph` object every run, and EntityDetailContent's refreshExecutions() assigns a fresh `executions` array. Svelte tracked those reads, so each write re-triggered the effect, which wrote again, until it gave up. The effects now depend on liveEvents alone and do their work inside untrack(). Applied to all four live effects, including the two that happened to settle on their own — relying on "applyHealthEvent returns the same reference when nothing changed" to break a feedback loop is far too subtle to leave implicit. SyntaxError: expected expression, got '<' — pre-existing, and unrelated to the live-update work. index.html loads /wails/runtime.js unconditionally; that file only exists inside the Wails desktop wrapper, which serves the same dist/ from its own asset handler. In a browser it is missing, and the SPA fallback answered it with index.html — so the browser parsed "<!doctype html>" as JavaScript on every single page load. The web Caddyfile now returns a real 404 for /wails/*, and more generally serves asset extensions without the SPA fallback: a missing .js or .css answered with HTML is always a confusing parse error rather than an honest 404. Co-Authored-By: Claude <noreply@anthropic.com>
28 lines
894 B
Caddyfile
28 lines
894 B
Caddyfile
:80 {
|
|
root * /srv
|
|
|
|
# /wails/runtime.js is injected by the Wails desktop wrapper, which serves
|
|
# the same dist/ from its own asset handler. In a browser it does not
|
|
# exist, and the SPA fallback below answered it with index.html — so the
|
|
# browser parsed "<!doctype html>" as JavaScript and threw
|
|
# "SyntaxError: expected expression, got '<'" on every page load.
|
|
# Return a real 404 instead: the tag fails quietly, and the desktop app is
|
|
# unaffected because it never reaches this server.
|
|
handle /wails/* {
|
|
error 404
|
|
}
|
|
|
|
# Same reasoning for any other asset: a missing .js/.css/.map answered with
|
|
# HTML is always a confusing parse error rather than an honest 404. Only
|
|
# real routes should fall through to the SPA.
|
|
@asset path_regexp \.(js|mjs|css|map|json|png|jpg|svg|ico|woff2?)$
|
|
handle @asset {
|
|
file_server
|
|
}
|
|
|
|
handle {
|
|
file_server
|
|
try_files {path} /index.html
|
|
}
|
|
}
|