# tchoutchou pdf — en-têtes HTTP (Cloudflare Pages).
#
# Toutes les règles dont le chemin correspond s'appliquent, dans l'ordre du fichier. Une en-tête
# posée par deux règles voit ses valeurs concaténées (« a, b ») : pour la remplacer, la règle la
# plus précise la retire d'abord (« ! Nom »), puis la pose de nouveau.
# web/scripts/serve.mjs lit ce fichier et l'applique de la même façon en local.

# Isolement inter-origines (performances du WebAssembly, mémoire partagée), CSP stricte : tout
# vient du site lui-même, aucune requête vers un tiers.
/*
  Cross-Origin-Opener-Policy: same-origin
  Cross-Origin-Embedder-Policy: require-corp
  Content-Security-Policy: default-src 'self'; script-src 'self' 'wasm-unsafe-eval'; worker-src 'self' blob:; style-src 'self' 'unsafe-inline'; img-src 'self' data: blob:; font-src 'self'; connect-src 'self'; object-src 'none'; base-uri 'none'; form-action 'none'; frame-ancestors 'none'
  Referrer-Policy: no-referrer
  X-Content-Type-Options: nosniff
  Permissions-Policy: camera=(), microphone=(), geolocation=()

# Fichiers versionnés par leur chemin : jamais modifiés sur place (nouvelle version = nouveau
# chemin), donc gardés un an par le navigateur sans revalidation.
/models/*
  Cache-Control: public, max-age=31536000, immutable

/vendor/*
  Cache-Control: public, max-age=31536000, immutable

/fonts/*
  Cache-Control: public, max-age=31536000, immutable

# Le manifeste des modèles change à chaque mise à jour des modèles : toujours revalidé.
/models/manifest.json
  ! Cache-Control
  Cache-Control: no-cache

# Page d'accueil : toujours revalidée, pour qu'une mise à jour du site soit vue tout de suite.
/
  Cache-Control: no-cache

/index.html
  Cache-Control: no-cache
