Ne plus servir un index.html périmé, et nommer les sessions expirées
Build & Deploy / build (push) Successful in 23s

nginx ne posait aucun Cache-Control sur index.html. Le navigateur appliquait
son cache heuristique et gardait l'ancien index.html, qui référence les anciens
assets fingerprintés — eux marqués immutable un an. Conséquence : un
déploiement pouvait rester invisible pendant une durée indéterminée, sans
Ctrl+Shift+R. no-cache ne désactive pas le cache, il impose une revalidation :
304 tant que rien ne change, nouveau build dès qu'il change.

Côté page admin, un 401 (jeton absent ou expiré au bout de 30 min) produisait
« Impossible de charger les utilisateurs » — un message qui accuse le serveur
alors que la session est simplement morte, l'interface continuant de croire
l'utilisateur connecté. Les 401 et 403 sont désormais distingués et nommés.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-08-15 16:44:17 +02:00
co-authored by Claude Opus 5
parent 02d56d90bc
commit d5703c6442
2 changed files with 30 additions and 8 deletions
+8
View File
@@ -9,6 +9,14 @@ server {
try_files $uri $uri/ /index.html;
}
# index.html référence les assets fingerprintés : s'il est mis en cache, le
# navigateur continue de charger l'ancien build (assets marqués immutable)
# pendant une durée indéterminée. no-cache = il le garde mais revalide, donc
# un 304 tant que rien ne change, et le nouveau build dès le déploiement.
location = /index.html {
add_header Cache-Control "no-cache, must-revalidate";
}
# Cache long pour les assets fingerprintés par Vite.
location /assets/ {
expires 1y;