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:
Antoine Jacquin
2026-09-17 00:42:12 +02:00
parent 6fb2c4ee97
commit ac182da55e
5 changed files with 39 additions and 9 deletions

View File

@ -319,6 +319,17 @@ def test_build_index_generates_html(tmp_path):
assert len(thumbs) >= 2 # au moins hillshade pour chaque tuile
def test_write_ui_assets(tmp_path):
"""_write_ui_assets écrit app.js/app.css dans le dossier cible (bâchés image)."""
from lidar_pipeline.index import _write_ui_assets, _APP_JS
dst = tmp_path / "ui"
_write_ui_assets(dst)
js = (dst / "app.js").read_text(encoding="utf-8")
assert js == _APP_JS
assert (dst / "app.css").read_text(encoding="utf-8").startswith("/*")
def test_mid_thumbnails_generated(tmp_path):
"""Vignette intermédiaire 640 px générée et référencée dans l'index."""
from lidar_pipeline.index import build_index