diff --git a/deploy/configs/nginx-production.conf b/deploy/configs/nginx-production.conf index 70b4b1a02..1944f8f1f 100644 --- a/deploy/configs/nginx-production.conf +++ b/deploy/configs/nginx-production.conf @@ -14,6 +14,10 @@ server { # SPA routing - index.html 禁止缓存,确保每次获取最新版本 location / { try_files $uri /index.html; + # HTML 文档(含 try_files 回退的 SPA 路由,如 /login /app/dashboard)一律 no-cache, + # 每次校验 ETag/Last-Modified,保证发版后旧标签页重新加载拿到新 chunk 引用; + # 带 hash 的静态资源由下方 ~* \.(js|css...) location 优先匹配,不受影响、保持 immutable + add_header Cache-Control "no-cache" always; } # API proxy — Production 环境代理到 production API 容器 diff --git a/deploy/configs/nginx-staging.conf b/deploy/configs/nginx-staging.conf index cc6cc4ab9..9521dbb42 100644 --- a/deploy/configs/nginx-staging.conf +++ b/deploy/configs/nginx-staging.conf @@ -21,6 +21,10 @@ server { # SPA fallback location / { try_files $uri /index.html; + # HTML 文档(含 try_files 回退的 SPA 路由,如 /login /app/dashboard)一律 no-cache, + # 每次校验 ETag/Last-Modified,保证发版后旧标签页重新加载拿到新 chunk 引用; + # 带 hash 的静态资源由下方 ~* \.(js|css...) location 优先匹配,不受影响、保持 immutable + add_header Cache-Control "no-cache" always; } # API proxy — Staging 环境代理到 staging API 容器 diff --git a/infra/docker/nginx-production.conf b/infra/docker/nginx-production.conf index c80cfa7b5..c5269f003 100755 --- a/infra/docker/nginx-production.conf +++ b/infra/docker/nginx-production.conf @@ -16,6 +16,10 @@ server { # 注意:不能加 $uri/,否则 /assets 等与构建产物目录同名的路由会被当成目录访问,返回 403 location / { try_files $uri /index.html; + # HTML 文档(含 try_files 回退的 SPA 路由,如 /login /app/dashboard)一律 no-cache, + # 每次校验 ETag/Last-Modified,保证发版后旧标签页重新加载拿到新 chunk 引用; + # 带 hash 的静态资源由下方 ~* \.(js|css...) location 优先匹配,不受影响、保持 immutable + add_header Cache-Control "no-cache" always; } # API proxy diff --git a/infra/docker/nginx-staging.conf b/infra/docker/nginx-staging.conf index d92cdb789..f6ec40cda 100755 --- a/infra/docker/nginx-staging.conf +++ b/infra/docker/nginx-staging.conf @@ -23,6 +23,10 @@ server { location / { try_files $uri /index.html; + # HTML 文档(含 try_files 回退的 SPA 路由,如 /login /app/dashboard)一律 no-cache, + # 每次校验 ETag/Last-Modified,保证发版后旧标签页重新加载拿到新 chunk 引用; + # 带 hash 的静态资源由下方 ~* \.(js|css...) location 优先匹配,不受影响、保持 immutable + add_header Cache-Control "no-cache" always; } # API proxy diff --git a/infra/docker/nginx.conf b/infra/docker/nginx.conf index a5b581f7b..bd8a1fe68 100755 --- a/infra/docker/nginx.conf +++ b/infra/docker/nginx.conf @@ -33,6 +33,10 @@ server { location / { try_files $uri /index.html; + # HTML 文档(含 try_files 回退的 SPA 路由,如 /login /app/dashboard)一律 no-cache, + # 每次校验 ETag/Last-Modified,保证发版后旧标签页重新加载拿到新 chunk 引用; + # 带 hash 的静态资源由下方 ~* \.(js|css...) location 优先匹配,不受影响、保持 immutable + add_header Cache-Control "no-cache" always; } # API proxy