Ne plus servir un index.html périmé, et nommer les sessions expirées
Build & Deploy / build (push) Successful in 23s
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:
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user