作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
许多人在 css 和 js 文件上使用版本号来强制非缓存版本在发布更新时加载到网页上:
CSS 示例:
<link rel="stylesheet" type="text/css" href="style.css?v=2017-03-17">
JS 示例:
<script type="text/javascript" src="js/myscript.js?v=2017-03-17"></script>
我注意到,通过向 css/js 文件添加版本号,网络浏览器也会从头加载 HTML 文件(从中引用 css/js 文件)并且不使用缓存版本。
这是确保 HTML 文件在所有网络浏览器中从头显示的充分方法,还是有办法为 HTML 文件 设置版本号,以确保新更新的 HTML 文档没有从浏览器的缓存中加载?
最佳答案
通常浏览器总是采用较新版本的 HTML。
如果你想阻止任何缓存,你可以使用这些技巧:
The correct minimum set of headers that works across the most important browsers:
Cache-Control: no-cache, no-store, must-revalidate
Pragma: no-cache
Expires: 0HTML
<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" />.htaccess (Apache)
<IfModule mod_headers.c>
Header set Cache-Control "no-cache, no-store, must-revalidate"
Header set Pragma "no-cache"
Header set Expires 0
</IfModule>Java Servlet
response.setHeader("Cache-Control", "no-cache, no-store, must-revalidate");
response.setHeader("Pragma", "no-cache");
response.setDateHeader("Expires", 0);PHP
header('Cache-Control: no-cache, no-store, must-revalidate');
header('Pragma: no-cache');
header('Expires: 0');ASP
Response.addHeader "Cache-Control", "no-cache, no-store, must-revalidate"
Response.addHeader "Pragma", "no-cache"
Response.addHeader "Expires", "0"ASP.NET
Response.AppendHeader("Cache-Control", "no-cache, no-store, must-revalidate");
Response.AppendHeader("Pragma", "no-cache");
Response.AppendHeader("Expires", "0");Ruby on Rails
response.headers['Cache-Control'] = 'no-cache, no-store, must-revalidate'
response.headers['Pragma'] = 'no-cache'
response.headers['Expires'] = '0'Python on Flask
resp.headers["Cache-Control"] = "no-cache, no-store, must-revalidate"
resp.headers["Pragma"] = "no-cache"
resp.headers["Expires"] = "0"Google Go
responseWriter.Header().Set("Cache-Control", "no-cache, no-store, must-revalidate")
responseWriter.Header().Set("Pragma", "no-cache")
responseWriter.Header().Set("Expires", "0")
来源:http://cristian.sulea.net/blog.php?p=2014-01-14-disable-browser-caching-with-meta-html-tags
关于javascript - 如何将版本号添加到 HTML 文件(不仅是 css 和 js 文件),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42855187/
我是一名优秀的程序员,十分优秀!