From 0f13ef525662fbbc7502cb76dc42369f25f7e003 Mon Sep 17 00:00:00 2001 From: jze9 Date: Thu, 16 Jul 2026 14:50:22 +0500 Subject: [PATCH] =?UTF-8?q?fix:=20Cache-Control:=20no-cache=20=D0=BD=D0=B0?= =?UTF-8?q?=20index.html=20=D0=B2=20web-react=20=D0=B8=20stats-react?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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 --- stats-react/nginx.conf | 7 ++++++- web-react/nginx.conf | 9 ++++++++- 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/stats-react/nginx.conf b/stats-react/nginx.conf index 54e9f4a..e58cd49 100644 --- a/stats-react/nginx.conf +++ b/stats-react/nginx.conf @@ -4,8 +4,13 @@ server { root /usr/share/nginx/html; index index.html; - # Статика SPA: всё неизвестное отдаём index.html (клиентский роутинг) + # Статика SPA: всё неизвестное отдаём index.html (клиентский роутинг). + # no-cache на index.html — см. web-react/nginx.conf, тот же приём: без + # него браузер кэширует HTML эвристически и после деплоя показывает + # старую версию до hard refresh. Хэшированные /assets/ ниже кэшируются + # честно на год, инвалидация им не нужна — имя меняется при сборке. location / { + add_header Cache-Control "no-cache"; try_files $uri $uri/ /index.html; } diff --git a/web-react/nginx.conf b/web-react/nginx.conf index b867eed..c26e3d7 100644 --- a/web-react/nginx.conf +++ b/web-react/nginx.conf @@ -4,8 +4,15 @@ server { root /usr/share/nginx/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 / { + add_header Cache-Control "no-cache"; try_files $uri $uri/ /index.html; }