From b71aed68abb9d473c9f03726fa8f76e6a29e0d0a Mon Sep 17 00:00:00 2001 From: Nxssie Date: Fri, 3 Jul 2026 11:38:31 +0100 Subject: [PATCH] fix(server): set explicit Content-Type headers for static file serving - Bun.file() passed to Response constructor didn't always emit Content-Type - explicitly pass file.type for static assets, text/html for SPA fallback - fixes MIME type error preventing module scripts from loading --- packages/server/src/index.ts | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/packages/server/src/index.ts b/packages/server/src/index.ts index 14aa2f4..bc88c0e 100644 --- a/packages/server/src/index.ts +++ b/packages/server/src/index.ts @@ -1405,8 +1405,16 @@ if (IS_PROD) { return c.json({ error: "Not found" }, 404); } const file = Bun.file(path.join(WEB_DIST_DIR, p)); - if (await file.exists()) return new Response(file); - return new Response(Bun.file(INDEX_HTML)); + if (await file.exists()) { + return new Response(file, { + headers: { "Content-Type": file.type || "application/octet-stream" }, + }); + } + // SPA fallback — serve index.html for client-side routes + const indexFile = Bun.file(INDEX_HTML); + return new Response(indexFile, { + headers: { "Content-Type": "text/html; charset=utf-8" }, + }); }); }