在服务器迁移过程中,新的nginx配置缺少了缓存控制指令。因此,我们得到了一个缓存的index.html文件,这对于我们的SPA来说非常糟糕,如果我们部署了新代码,它将不再刷新。我们需要使index.html不被缓存。
以下是我们(糟糕的)在线nginx配置几天的内容:
我们修复了配置文件:
以下是我们(糟糕的)在线nginx配置几天的内容:
server {
listen 80;
location / {
root /usr/share/nginx/html;
index index.html index.htm;
try_files $uri $uri/ /index.html;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
}
我们修复了配置文件:
server {
listen 80;
root /usr/share/nginx/html;
location / {
index index.html index.htm;
try_files $uri $uri/ /index.html;
add_header Cache-Control "no-store, no-cache, must-revalidate";
}
location ~* \.(js|jpg|jpeg|gif|png|svg|css)$ {
add_header Cache-Control "max-age=31536000, public";
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
}
问题
在过去的几天内访问我们网页的客户端缓存了旧的 index.html
。我们如何强制他们的浏览器放弃缓存的 index.html
?