Fix: Cache-Busting für /static/*-Dateien ergänzt
Live vom Nutzer gefunden: eine Aktualisierung von table-tools.js kam nicht an, weil der Browser die alte Version unter derselben URL gecacht hatte - kein Grund fuer den Browser, neu zu laden. Neuer static_version-Jinja-Global (Hash ueber den tatsaechlichen Inhalt aller static/-Dateien, bei Prozessstart berechnet), als ?v=... an pico.min.css/ table-tools.js/theme-toggle.js angehaengt - aendert sich automatisch bei jedem Deploy, ohne manuelles Hochzaehlen. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01VLk93dhDMrkPXefVdknMV9
This commit is contained in:
1 parent
3aa653e002
commit
70d70dbf99
2 files changed
+29
-3
No files matched your search
+3
-3
@@ -15,9 +15,9 @@
|
||||
}
|
||||
} catch (e) {}
|
||||
</script>
|
||||
<link rel="stylesheet" href="/static/pico.min.css">
|
||||
<script src="/static/table-tools.js" defer></script>
|
||||
<script src="/static/theme-toggle.js" defer></script>
|
||||
<link rel="stylesheet" href="/static/pico.min.css?v={{ static_version }}">
|
||||
<script src="/static/table-tools.js?v={{ static_version }}" defer></script>
|
||||
<script src="/static/theme-toggle.js?v={{ static_version }}" defer></script>
|
||||
<style>
|
||||
.state-present { color: var(--pico-ins-color); font-weight: 600; }
|
||||
.state-absent { color: var(--pico-muted-color); }
|
||||
|
||||
@@ -1,3 +1,29 @@
|
||||
import hashlib
|
||||
from pathlib import Path
|
||||
|
||||
from fastapi.templating import Jinja2Templates
|
||||
|
||||
templates = Jinja2Templates(directory="templates")
|
||||
|
||||
|
||||
def _static_version() -> str:
|
||||
"""
|
||||
Cache-Busting für /static/*-Dateien (11.09.2026, live gefunden: eine
|
||||
Änderung an table-tools.js kam beim Nutzer nicht an, weil der Browser
|
||||
die alte Version unter derselben URL gecacht hatte - keine
|
||||
Anfrage-URL änderte sich, also gab es für den Browser keinen Grund,
|
||||
neu zu laden). Hängt vom tatsächlichen Dateiinhalt ab (nicht der
|
||||
Änderungszeit - robuster gegenüber Deploy-Eigenheiten, die mtimes
|
||||
verändern können, ohne dass sich der Inhalt ändert), einmalig beim
|
||||
Prozessstart berechnet.
|
||||
"""
|
||||
|
||||
static_dir = Path(__file__).parent / "static"
|
||||
hasher = hashlib.sha256()
|
||||
for datei in sorted(static_dir.glob("*")):
|
||||
if datei.is_file():
|
||||
hasher.update(datei.read_bytes())
|
||||
return hasher.hexdigest()[:12]
|
||||
|
||||
|
||||
templates.env.globals["static_version"] = _static_version()
|
||||
Reference in new issue
Block a user