我有一个SPA网站(VueJS),我每天开始更新。当我不熟悉整个过程时,我从多个来源借来了我的nginx配置的零碎片段,最后用Cache-Control: max-age=31536000
为网站中的所有文件提供服务。
让用户抱怨他们找不到我最近的更改后,我倾向于认为这可能是由于浏览器将所有内容都缓存到2037 ::.。根据我的建议,这一假设得到了支持。 CTRL + F5 的问题已解决。
此后,我为网站更新了不同的缓存规则,但是浏览器似乎并没有在我的服务器上获取这些更新的规则。
map $sent_http_content_type $expires {
default off;
text/html off;
text/css off;
application/javascript off;
application/x-javascript off;
}
...
server {
...
location / {
add_header Cache-Control 'no-cache, must-revalidate, proxy-revalidate, max-age=0';
...
}
}
有什么办法可以撤销此操作?我必须打包并移到另一个域吗?
答案 0 :(得分:0)
如果您为所有页面设置了更远的Cache-Control
生存期,并且拥有可靠的用户群在该网站生效时访问了您的网站...那么简短的答案是:是的。
无法撤消对浏览器缓存的使用,因为它不会在当前缓存的资产(在这种情况下,您的页面也不会过期)之前不会检查新的缓存策略。
但是,您可以考虑以下事实:人们倾向于更改浏览器,运行OS优化程序(清除缓存)或为您认识的用户开展电子邮件广告活动,以指示他们清除浏览器缓存。
从任何角度看,这都不是一个好情况。