清除HTML缓存的方法

  1. 在html头部增加禁止缓存标签
1
2
3
4
<meta HTTP-EQUIV="pragma" CONTENT="no-cache">
<meta HTTP-EQUIV="Cache-Control" CONTENT="no-store, must-revalidate">
<meta HTTP-EQUIV="expires" CONTENT="Wed, 26 Feb 1997 08:21:57 GMT">
<meta HTTP-EQUIV="expires" CONTENT="0">
  1. 在vue打包配置中开启文件名hash属性
1
2
3
4
5
6
// vue.config.js
module.exports = {
...

filenameHashing: true
}

以上的方法只有在HTML页面不被缓存时有效,而一部分浏览器为了提升用户体验是无视这些配置而强行缓存页面的。这种时候只能通过Nginx增加no-cache响应头来解决

1
2
3
4
location ~ .*\.(?:htm|html)$ {
root 网站文件夹位置;
add_header Cache-Control "no-store, no-cache";
}

配置完之后在network里查看网页的响应头,就可以看到这条配置了。

这个方法对Safari浏览器非常有效,可以实现不新开Tab,只靠刷新就能加载页面新数据


评论区