perf(nginx): 静态图/推广资源 Cache-Control 7d,index.html 禁止长期缓存

Made-with: Cursor
This commit is contained in:
whm
2026-03-22 01:54:43 +08:00
parent 6f87e0c260
commit c6e5779b76
2 changed files with 29 additions and 6 deletions

View File

@@ -17,27 +17,39 @@ server {
add_header Cache-Control "public, immutable";
}
# SPA 入口:勿长期缓存,否则发版后用户仍可能拿到旧 index
location = /index.html {
add_header Cache-Control "no-cache, no-store, must-revalidate";
expires -1;
}
# web/public 挂载到 /var/www/yh-public与 dist 根目录同 URL如 /logo.png优先读挂载无则回退 dist
location ~ ^/([^/]+\.(?:png|jpe?g|gif|ico|svg|webp|webmanifest))$ {
root /var/www/yh-public;
try_files /$1 @dist_root_public;
expires 7d;
add_header Cache-Control "public, max-age=604800";
}
location @dist_root_public {
root /usr/share/nginx/html;
try_files $uri =404;
expires 7d;
add_header Cache-Control "public, max-age=604800";
}
# web/public/social/ → 关注我们二维码等(挂载 /var/www/yh-public
location ^~ /social/ {
alias /var/www/yh-public/social/;
add_header Cache-Control "public, max-age=300";
expires 7d;
add_header Cache-Control "public, max-age=604800";
}
# 推广素材:文件必须真实存在,禁止落到 SPA index.html否则前端误判「静态存在」、视频拿到 HTML
# 宿主机 ./web/promotion 挂载覆盖本路径,改 social 下文件无需重新 npm build
# 推广素材:含视频/封面等大文件,浏览器可长期缓存减轻二次访问流量
# 宿主机 ./web/promotion 挂载覆盖本路径,改素材后依赖 max-age 到期或用户强刷
location ^~ /promotion/ {
try_files $uri =404;
add_header Cache-Control "public, max-age=86400";
expires 7d;
add_header Cache-Control "public, max-age=604800";
}
location = / {

View File

@@ -15,24 +15,35 @@ server {
add_header Cache-Control "public, immutable";
}
location = /index.html {
add_header Cache-Control "no-cache, no-store, must-revalidate";
expires -1;
}
# web/public 挂载 /var/www/yh-public单段文件名同 dist 根 URL优先挂载后回退 dist
location ~ ^/([^/]+\.(?:png|jpe?g|gif|ico|svg|webp|webmanifest))$ {
root /var/www/yh-public;
try_files /$1 @dist_root_public;
expires 7d;
add_header Cache-Control "public, max-age=604800";
}
location @dist_root_public {
root /usr/share/nginx/html;
try_files $uri =404;
expires 7d;
add_header Cache-Control "public, max-age=604800";
}
location ^~ /social/ {
alias /var/www/yh-public/social/;
add_header Cache-Control "public, max-age=300";
expires 7d;
add_header Cache-Control "public, max-age=604800";
}
location ^~ /promotion/ {
try_files $uri =404;
add_header Cache-Control "public, max-age=86400";
expires 7d;
add_header Cache-Control "public, max-age=604800";
}
location = / {