From 7f71c232326268f97719091d1dfc48fa57b91764 Mon Sep 17 00:00:00 2001 From: mboehmlaender Date: Wed, 5 Aug 2026 22:03:49 +0200 Subject: [PATCH] Revert "Fix Next static asset serving" This reverts commit 964bd44a82c747bed788d583da72f9d81a24e8cd. --- frontend/package.json | 4 +-- frontend/server.mjs | 57 ------------------------------------------- 2 files changed, 2 insertions(+), 59 deletions(-) delete mode 100644 frontend/server.mjs diff --git a/frontend/package.json b/frontend/package.json index 0fb86cd..e7b3c04 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -5,8 +5,8 @@ "type": "module", "scripts": { "dev": "NEXT_TELEMETRY_DISABLED=1 next dev -H 0.0.0.0", - "build": "NEXT_TELEMETRY_DISABLED=1 next build --webpack", - "start": "NEXT_TELEMETRY_DISABLED=1 NODE_ENV=production node server.mjs", + "build": "NEXT_TELEMETRY_DISABLED=1 next build", + "start": "NEXT_TELEMETRY_DISABLED=1 next start -H 0.0.0.0", "typecheck": "tsc --noEmit" }, "dependencies": { diff --git a/frontend/server.mjs b/frontend/server.mjs deleted file mode 100644 index f14aebc..0000000 --- a/frontend/server.mjs +++ /dev/null @@ -1,57 +0,0 @@ -import { existsSync, statSync } from "node:fs"; -import { createServer } from "node:http"; -import path from "node:path"; -import { fileURLToPath, parse } from "node:url"; - -import next from "next"; - -const dirname = path.dirname(fileURLToPath(import.meta.url)); -const port = Number.parseInt(process.env.PORT ?? "3910", 10); -const hostname = process.env.HOSTNAME ?? "0.0.0.0"; -const dev = process.env.NODE_ENV !== "production"; - -const app = next({ dev, hostname, port }); -const handle = app.getRequestHandler(); -const nextStaticRoot = path.resolve(dirname, ".next/static"); - -function isMissingNextStaticAsset(pathname) { - if (!pathname.startsWith("/_next/static/")) { - return false; - } - - let relativePath; - try { - relativePath = decodeURIComponent(pathname.replace("/_next/static/", "")); - } catch { - return true; - } - - const assetPath = path.resolve(nextStaticRoot, relativePath); - if (!assetPath.startsWith(`${nextStaticRoot}${path.sep}`)) { - return true; - } - - try { - return !existsSync(assetPath) || !statSync(assetPath).isFile(); - } catch { - return true; - } -} - -await app.prepare(); - -createServer((req, res) => { - const parsedUrl = parse(req.url ?? "/", true); - const pathname = parsedUrl.pathname ?? "/"; - - if (isMissingNextStaticAsset(pathname)) { - res.statusCode = 404; - res.setHeader("Content-Type", "text/plain; charset=utf-8"); - res.end("Not found"); - return; - } - - handle(req, res, parsedUrl); -}).listen(port, hostname, () => { - console.log(`TicketTracker frontend listening on http://${hostname}:${port}`); -});