fix: Cache-Control: no-cache на index.html в web-react и stats-react
location / отдавал index.html вообще без Cache-Control — браузер кэшировал его эвристически (по Last-Modified), из-за чего после деплоя часть пользователей продолжала видеть старую версию (например, без анонимного входа), пока не делали hard refresh, а на следующей обычной загрузке снова получали закэшированную старую версию. Симптом воспроизвёлся на test.cloud-copp74.ru. no-cache вынуждает браузер всегда идти на сервер за index.html (быстрый 304 по ETag, если файл не менялся) — хэшированные /assets/ ниже как кэшировались на год, так и кэшируются, инвалидация им не нужна. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
@@ -4,8 +4,13 @@ server {
|
|||||||
root /usr/share/nginx/html;
|
root /usr/share/nginx/html;
|
||||||
index index.html;
|
index index.html;
|
||||||
|
|
||||||
# Статика SPA: всё неизвестное отдаём index.html (клиентский роутинг)
|
# Статика SPA: всё неизвестное отдаём index.html (клиентский роутинг).
|
||||||
|
# no-cache на index.html — см. web-react/nginx.conf, тот же приём: без
|
||||||
|
# него браузер кэширует HTML эвристически и после деплоя показывает
|
||||||
|
# старую версию до hard refresh. Хэшированные /assets/ ниже кэшируются
|
||||||
|
# честно на год, инвалидация им не нужна — имя меняется при сборке.
|
||||||
location / {
|
location / {
|
||||||
|
add_header Cache-Control "no-cache";
|
||||||
try_files $uri $uri/ /index.html;
|
try_files $uri $uri/ /index.html;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -4,8 +4,15 @@ server {
|
|||||||
root /usr/share/nginx/html;
|
root /usr/share/nginx/html;
|
||||||
index index.html;
|
index index.html;
|
||||||
|
|
||||||
# Статика SPA: всё неизвестное отдаём index.html (клиентский роутинг)
|
# Статика SPA: всё неизвестное отдаём index.html (клиентский роутинг).
|
||||||
|
# index.html без явного Cache-Control браузер кэширует эвристически (по
|
||||||
|
# Last-Modified) — после деплоя часть пользователей видит старую версию,
|
||||||
|
# пока не сделают hard refresh. no-cache вынуждает всегда идти на сервер
|
||||||
|
# за свежим HTML (быстрый 304 по ETag, если файл не менялся); хэшированные
|
||||||
|
# /assets/ ниже как кэшировались на год, так и кэшируются — их имя меняется
|
||||||
|
# при каждой сборке, так что инвалидация не нужна.
|
||||||
location / {
|
location / {
|
||||||
|
add_header Cache-Control "no-cache";
|
||||||
try_files $uri $uri/ /index.html;
|
try_files $uri $uri/ /index.html;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user