Sert l'interface (app.js/app.css) depuis l'image, plus depuis le volume
- Les assets de l'interface étaient écrits dans le volume (output/assets) et servis d'ici : sur la webapp légère, un app.js périmé restait servi même après rebuild de l'image. - app.js/app.css (+ Leaflet vendorisé) sont désormais bâchés dans l'image au build (Dockerfile.webapp) et servis depuis l'image ; le volume ne porte que les données (index.html, vignettes, tuiles). - _write_ui_assets() génère les assets dans un dossier cible ; repli de régénération au démarrage si non bâchés (dev). build_index continue d'écrire output/assets/ pour le mode serveur statique.
This commit is contained in:
@ -146,10 +146,15 @@ async def _log_client_ip(request: Request, call_next):
|
||||
logger.info(f"{request.method} {path} — client : {ip or '?'}")
|
||||
return await call_next(request)
|
||||
|
||||
# assets/ (CSS/JS de l'interface) est créé dès le démarrage pour que le monteur
|
||||
# statique soit actif même avant la première génération de l'index.
|
||||
_assets_dir = OUTPUT_DIR / "assets"
|
||||
_assets_dir.mkdir(parents=True, exist_ok=True)
|
||||
# CSS/JS de l'interface : servis depuis l'IMAGE (bâchés au build, cf.
|
||||
# Dockerfile.webapp), plus depuis le volume — le code de l'interface suit
|
||||
# l'image, pas le cache de tuiles. En repli (dev, source non bâchée), on les
|
||||
# régénère depuis les constantes de l'index pour que /assets soit actif même
|
||||
# avant la première génération.
|
||||
_assets_dir = Path(__file__).resolve().parent / "webapp_assets"
|
||||
if not (_assets_dir / "app.js").is_file():
|
||||
from .index import _write_ui_assets
|
||||
_write_ui_assets(_assets_dir)
|
||||
|
||||
# --- Cache à la demande : la visualisation peuple le cache local -------------
|
||||
# Les images viennent de la machine de traitement par HTTP : une image absente
|
||||
|
||||
Reference in New Issue
Block a user