传统的bootstrap项目,js代码写在html的script标签里,如何防止缓存?

已经在index.html里加了禁止缓存的标签,然后当场修改dom,js代码,然后部署到环境上,打开chrome浏览器访问,当时修改后发现新代码都生效了。
<meta http-equiv="Expires" content="0">
<meta http-equiv="Pragma" content="no-cache">
<meta http-equiv="Cache-control" content="no-cache">
<meta http-equiv="Cache" content="no-cache">

现在又说360安全浏览器、搜狗高速浏览器有缓存。于是又测试了一遍,dom上增加了一个按钮,js增加了一个console.log,部署上环境

开发用自己电脑的chrome浏览器访问,新代码不生效。
我用自己的chrome浏览器访问,新代码生效。
然后我用360浏览器访问,新代码不生效。

1.请问js代码写在html里,html文件会缓存吗?
2.请问为什么有人的电脑chrome缓存,而有的人不会?
3.怎么解决?

阅读 5.3k
4 个回答

一般情况下,加上下面的meta,html就不会缓存了

<meta http-equiv="Cache-Control" content="no-cache, no-store, must-revalidate" />
<meta http-equiv="Pragma" content="no-cache" />
<meta http-equiv="Expires" content="0" />

但是,除了浏览器缓存,还要考虑服务端是否有缓存。比入nginx的缓存配置

add_header Cache-Control no-cache;

更详细的请查看:http://cristian.sulea.net/blo...


另外你说的有人电脑会缓存,有人不会,是不是这个选项有勾选
clipboard.png

给js加个版本号

no-cache不是不缓存,而是表示不缓存过期资源.no-store才是禁止缓存.

加载地址的时候url里面带一个随机数

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题