我认为我的 javascript 被缓存并且即使使用更新的版本标签也没有更新,例如:
<script type="text/javascript" src="lib/myScript.min.js?v=3"></script>
但我意识到问题在于我的 html 文件正在被缓存......所以浏览器甚至不知道有一个新的脚本文件。
我不想禁用缓存,但有没有办法让浏览器知道它没有最新的 html 文件?(这是我放在我的 html 文件中还是放在我的 apache2 服务器上的东西?)
<meta http-equiv="cache-control" content="max-age=0" />
<meta http-equiv="cache-control" content="no-cache" />
<meta http-equiv="expires" content="0" />
<meta http-equiv="expires" content="Tue, 01 Jan 1980 1:00:00 GMT" />
<meta http-equiv="pragma" content="no-cache" />
您可以尝试这些元标记。我认为它会解决您的问题。
<meta http-equiv='cache-control' content='no-cache'>
<meta http-equiv='expires' content='0'>
<meta http-equiv='pragma' content='no-cache'>
除了在 html 中显式编写之外,您实际上还有两个更好的选择:ETAG
和Last-Modified
. 如果您的 html 文件是静态文件,那么默认情况下 apache2 将知道如何处理其缓存。如果它是 php,那么你将不得不在你的代码中处理它,或者使用一些 php 框架。
由于这两个标头不是用html编写的,因此浏览器不必下载整个HTTP响应,从而减少了流量。所以我建议你使用它们。
我相信一点谷歌搜索可能会有所帮助。