From 1a2201e3800923b21a517cde09b6e34b9aa9b61b Mon Sep 17 00:00:00 2001 From: ah-admin Date: Wed, 7 Oct 2026 19:19:40 +0200 Subject: [PATCH] nginx: Cache-Header fuer Root-Statik (Logo etc.), assets mit ^~ abgesichert --- docker/templates/default.conf.template | 12 ++++++++++-- kimi.md | 1 + 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/docker/templates/default.conf.template b/docker/templates/default.conf.template index 36b4231..37c76fc 100644 --- a/docker/templates/default.conf.template +++ b/docker/templates/default.conf.template @@ -19,12 +19,20 @@ server { add_header Cache-Control "no-cache" always; } - # Cache für gehashte Build-Assets - location /assets/ { + # Cache für gehashte Build-Assets (^~ = Prefix schlägt Regex-Locations, + # sonst würde die Bild-Regel unten das immutable-Caching überschreiben) + location ^~ /assets/ { expires 30d; add_header Cache-Control "public, immutable"; } + # Statische Dateien im Root (Logo, Favicons – nicht hash-benannt, + # daher nur kurz cachen, sonst riskiert der Browser veraltete Dateien) + location ~* \.(png|jpg|jpeg|webp|ico|svg|woff2?)$ { + expires 1d; + add_header Cache-Control "public"; + } + # Mail-API des Portals (Container mp-mail-api im selben Docker-Netz npm_default). # Das Token kommt aus portal.env (envsubst beim Container-Start) und liegt # NIE im Repo und NIE im Browser – der Endpunkt ist nur vom Server erreichbar. diff --git a/kimi.md b/kimi.md index 880404d..005034d 100644 --- a/kimi.md +++ b/kimi.md @@ -883,4 +883,5 @@ Zustellung an axel@hocks.eu status=sent, Test-Ticket bereinigt. - Einmal-Bereinigung: 39 überschüssige unbenutzte Codes gelöscht (prinzferdinand-we7 hatte 35, 6 codes ohne Wohnung). Pro Gruppe bleibt der neueste Code erhalten (MP-2C23-3CD2 / MP-BFEC-9849). - Anleitung erweitert: „Registrierungscodes erzeugen" (Verwaltung) und „Erstregistrierung mit Code" (Mieter). Achtung bei Hash-Verifikation: CI-Build enthält aktuellen Zeitstempel (anleitung-meta), daher abweichende Chunk-Hashes zum lokalen Build. Commit d9d1151, CI-Lauf 15, live verifiziert. - Fix: Backend sendet jetzt `Cache-Control: no-store` auf allen API-Responses — der heuristische Browser-Cache lieferte sonst nach Reload veraltete Daten (aufgetreten: gelöschte Registrierungscodes wurden weiter angezeigt). mp-api manuell neu gebaut, Header live verifiziert. +- nginx-Cache-Optimierung: Bilder/Schriftarten im Root (logo.png etc., nicht hash-benannt) erhalten jetzt `Cache-Control: public, max-age=86400` (vorher keine Header → heuristischer Cache). `/assets/` mit `^~` markiert, damit das neue Regex die immutable-Regel nicht überschreibt. Template im Repo und auf dem Server synchron, mp-portal neu erstellt, alle Header live verifiziert.