上来就干货!
(安卓微信iframe缓存请参考楼主的“套iframe缓存问题”)
vue默认配置,打包后css和js的名字后面都加了哈希值,不会有缓存问题。
但是index.html在服务器端可能是有缓存的,需要在服务器配置不让缓存index.html
location = /index.html {
add_header Cache-Control "no-cache, no-store";
}
no-cache, no-store可以只设置一个
no-cache浏览器会缓存,但刷新页面或者重新打开时 会请求服务器,服务器可以响应304,如果文件有改动就会响应200
no-store浏览器不缓存,刷新页面需要重新下载页面
ps:
1、/index.html 其中/如果是域名根目录,vue打包的时候又指定了域名下的某个文件夹,则/后面还要加上对应的文件夹名,如:
location ^~xx/index.html {
add_header Cache-Control "no-cache, no-store";
}
= 开头表示精确匹配
^~ 开头表示url以某个常规字符串开头,理解为匹配 url路径即可。nginx不对url做编码,因此请求为/static/20%/aa,可以被规则^~ /static/ /aa匹配到(注意是空格)。
2、如果index.html引入了static下的文件,为防止打包后存在缓存可以在后面加上时间戳,如
<script type="text/javascript" src="/xx/static/yy.js?t=<%=new Date().getTime()%>"></script>
打包后就会变成这样: