diff --git a/functions/_middleware.js b/functions/_middleware.js index 849c0f5..1d5918e 100644 --- a/functions/_middleware.js +++ b/functions/_middleware.js @@ -67,12 +67,18 @@ const OEFFENTLICHE_SEITEN = new Set([ /* Damit diese Seiten nicht nackt/ohne Gestaltung beim Prüfteam ankommen, sind zusätzlich die rein gestalterischen Dateien freigegeben: Stylesheets sowie Logo/Favicons. Bewusst NUR .css aus /_astro/ — die JavaScript-Bündel dort enthalten u.a. Produktdaten und bleiben - deshalb weiterhin hinter der Schranke. */ + deshalb weiterhin hinter der Schranke. + /sw.js + /manifest.webmanifest (04.08.2026 ergänzt): enthalten keinerlei Shop-/Kundendaten + (Service Worker ist reines Caching-Skript, Manifest nur Name/Icons/Farben), wurden bisher aber + von der Schranke blockiert (302 statt der Datei) — dadurch schlug u.a. die Service-Worker- + Registrierung auf /admin/ mit einem echten Browserfehler fehl, sobald jemand /admin/ ohne + gültige Haupt-Gate-Sitzung aufruft (z.B. direkt per Lesezeichen, ohne vorher die Haupt-Seite + besucht/eingeloggt zu haben). */ function istOeffentlichErreichbar(pfad) { const ohneSlash = pfad.endsWith("/") && pfad.length > 1 ? pfad.slice(0, -1) : pfad; if (OEFFENTLICHE_SEITEN.has(ohneSlash)) return true; if (pfad.startsWith("/_astro/") && pfad.endsWith(".css")) return true; - if (/^\/(logo\.png|favicon\.ico|favicon-\d+x\d+\.png|apple-touch-icon\.png|icon-\d+(-maskable)?\.png)$/.test(pfad)) return true; + if (/^\/(logo\.png|favicon\.ico|favicon-\d+x\d+\.png|apple-touch-icon\.png|icon-\d+(-maskable)?\.png|sw\.js|manifest\.webmanifest)$/.test(pfad)) return true; return false; }