Files
kundenplattform/templating.py
T
adminandClaude Sonnet 5 70d70dbf99 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
2026-09-11 10:05:34 +02:00

30 lines
1018 B
Python

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()