# Cyber-Assistant — cache des ressources statiques (mise en production fiable)
# Force la revalidation des fichiers de code à chaque chargement : un nouveau
# déploiement est pris immédiatement (304 si inchangé), évitant qu'un poste serve
# un ancien bundle.js depuis le cache navigateur (cf. EDIT_LOCK_ENFORCED côté serveur).
# Enveloppé dans IfModule : ignoré sans erreur si le module n'est pas chargé.
<IfModule mod_headers.c>
  <FilesMatch "\.(js|css)$">
    Header set Cache-Control "no-cache, must-revalidate"
  </FilesMatch>
  <FilesMatch "index\.html$">
    Header set Cache-Control "no-cache, must-revalidate"
  </FilesMatch>
  # version.json : lu au runtime par loadAppVersion() qui écrase le label de version affiché.
  # Sans en-tête explicite, le cache heuristique du navigateur le fige plusieurs jours et l'app
  # affiche une version périmée alors que le code servi est à jour. Le fetch pose déjà
  # cache:'no-store' (seul recours si mod_headers est absent) ; cette règle est la 2e barrière.
  <FilesMatch "^version\.json$">
    Header set Cache-Control "no-cache, must-revalidate"
  </FilesMatch>
</IfModule>
