perf(nginx): 静态图/推广资源 Cache-Control 7d,index.html 禁止长期缓存
Made-with: Cursor
This commit is contained in:
@@ -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 = / {
|
||||
|
||||
@@ -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 = / {
|
||||
|
||||
Reference in New Issue
Block a user