设置 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" />
- <meta http-equiv="X-UA-Compatible" content="IE=edge">
但是也不保证是百分百正确. 在开发时候经常遇到一个问题, 我们根据版本号去控制缓存问题, 当我们发布新版本, 使用心得版本号的时候, 发现 HTML 里面引用的版本号却是旧的版本号 , 原来是该 HTML 文件被缓存了, 很多时候我们设置禁止 HTML 文件被缓存, 但依然会出现被缓存的情况.
为什么我们有时候设置了 < meta http-equiv="Cache-control" content="no-store">这种强制性禁止缓存, 我们的页面依然被缓存了?
因为我们只关注了客户端, 却忽略了服务器端的设置, 如果服务器端 nginx 设置了 Cache-control, 他是会覆盖掉我们页面中设置的的 Cache-control 的, 所以有时候我们会发现明明 CSS 和 JS 已经加了版本号, 但是 HTML 文件里面引用的依然是旧的 CSS 和 JS 文件,
因为服务器的缓存机制, 旧的 CSS 和 JS 并不会被立即删除, 这种情况下, 我们需要和服务器端 (或者运维) 人员协商一个统一的缓存策略, 以保证更新可以及时得到效果,
如果沟通不顺利, 或者想立刻看到效果, 可以试试 < meta http-equiv="Pragma" content="no-cache"/> 如果服务器端没有去设置 Pragma, 我们设置的 Pragma 依然有效.
自己是一个 6 年的前端工程师, 希望本文对你有帮助!
这里推荐一下我的前端学习交流扣 qun:731771211 , 里面都是学习前端的, 如果你想制作酷炫的网页, 想学习编程. 自己整理了一份 2019 最全面前端学习资料, 从最基础的 HTML+CSS+JS[炫酷特效, 游戏, 插件封装, 设计模式] 到移动端 HTML5 的项目实战的学习资料都有整理, 送给每一位前端小伙伴, 每天分享技术
点击: 加入
来源: http://www.jianshu.com/p/2db09779bb66