Keep a missing /assets file a real 404 in the SPA fallback

A stale browser tab referencing a bundle removed by a later deploy
should get a clean 404, not HTML served where JS was expected.
This commit is contained in:
b0txec
2026-08-24 10:35:34 +03:00
parent 2c4488846e
commit b0b58d2f1e
+5
View File
@@ -211,6 +211,11 @@ class Server(postgresService: PostgresService, dataService: DataService, fetch:
// real, observed on /faktiska and /udens-temperatura in production. // real, observed on /faktiska and /udens-temperatura in production.
private val assets = staticcontent.fileService[IO](FileService.Config("./web/dist")) private val assets = staticcontent.fileService[IO](FileService.Config("./web/dist"))
private val spaFallback = HttpRoutes.of[IO] { private val spaFallback = HttpRoutes.of[IO] {
// A missing file under /assets (the only place Vite emits hashed build
// output) should stay a real 404, not silently serve HTML — otherwise a
// stale tab referencing a since-removed bundle after a future deploy
// would get a confusing "unexpected token" JS parse error instead.
case GET -> Root / "assets" / _ => NotFound()
case req @ GET -> _ => case req @ GET -> _ =>
StaticFile.fromPath(Path("./web/dist/index.html"), Some(req)).getOrElseF(NotFound()) StaticFile.fromPath(Path("./web/dist/index.html"), Some(req)).getOrElseF(NotFound())
} }