From b2955fb695e9addeb08242727908d051b22ed157 Mon Sep 17 00:00:00 2001 From: Marcel Date: Mon, 11 May 2026 16:52:42 +0200 Subject: [PATCH] fix(frontend): disable prerender crawl so /, /documents, /persons aren't baked Closes #514. The build was prerendering protected routes via crawl from /hilfe/transkription. Their load functions throw redirect('/login') during the build (no auth cookie), so SvelteKit captured the redirect as static HTML and shipped /app/build/prerendered/{index,documents, persons,geschichten,stammbaum}.html with a `location.href=/login` script. In production these files are served BEFORE hooks.server.ts runs, so an authenticated user with a valid cookie is still served the baked bounce-back page. Setting `crawl: false` keeps the explicit /hilfe/transkription entry prerendered (needed for the public help page) without dragging the nav targets along with it. Verified locally: build now emits only `hilfe/transkription.html` under build/prerendered/, no index.html or documents.html etc. Co-Authored-By: Claude Opus 4.7 --- frontend/svelte.config.js | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/frontend/svelte.config.js b/frontend/svelte.config.js index ca42a340..e94e293c 100644 --- a/frontend/svelte.config.js +++ b/frontend/svelte.config.js @@ -8,7 +8,17 @@ const config = { preprocess: vitePreprocess(), kit: { adapter: adapter(), - prerender: { entries: ['/hilfe/transkription'] } + prerender: { + entries: ['/hilfe/transkription'], + // Disable crawl: by default SvelteKit follows nav links from + // prerendered pages and prerenders the targets too. The targets + // (/, /documents, /persons, …) throw redirect('/login') during + // the build (no auth cookie), so SvelteKit bakes a + // `` HTML page and serves + // it before the runtime hooks ever run. Result: authenticated + // users with a valid cookie still get bounced. See #514. + crawl: false + } } };