Vue项目中Disk Cache如何控制?文件更新后依然加载旧版本
大家好,我在Vue项目中配置了nginx的expires头想优化Disk Cache,但文件更新后浏览器依然加载旧版本,这是为什么呢?
我按照教程在nginx.conf里设置了:
location ~* .(css|js|jpg)$ {
expires 30d;
add_header Cache-Control "public";
}
但修改了main.js后,开发者工具显示200 (from disk cache)。尝试过清除浏览器缓存、关闭服务器重启,但问题依旧。有没有更好的控制Disk Cache策略的方法?
另外发现服务端响应头里的ETag和Last-Modified都没变化,是不是应该配合使用其他Cache-Control指令?
main.[hash].js,这样每次文件更新都会生成新名字,浏览器就会重新加载。在vue.config.js里加这段:
另外,你的Nginx配置可以改成这样,强制使用immutable策略:
我之前也遇到过这个问题,加上hash和immutable就解决了,推荐试试。