9

我认为我的 javascript 被缓存并且即使使用更新的版本标签也没有更新,例如:

<script type="text/javascript" src="lib/myScript.min.js?v=3"></script>

但我意识到问题在于我的 html 文件正在被缓存......所以浏览器甚至不知道有一个新的脚本文件。

我不想禁用缓存,但有没有办法让浏览器知道它没有最新的 html 文件?(这是我放在我的 html 文件中还是放在我的 apache2 服务器上的东西?)

4

3 回答 3

5
<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" />

使用标签关闭所有浏览器中的缓存的答案?

于 2012-09-05T10:53:38.427 回答
3

您可以尝试这些元标记。我认为它会解决您的问题。

<meta http-equiv='cache-control' content='no-cache'>
<meta http-equiv='expires' content='0'>
<meta http-equiv='pragma' content='no-cache'>
于 2012-09-05T10:51:10.267 回答
2

除了在 html 中显式编写之外,您实际上还有两个更好的选择:ETAGLast-Modified. 如果您的 html 文件是静态文件,那么默认情况下 apache2 将知道如何处理其缓存。如果它是 php,那么你将不得不在你的代码中处理它,或者使用一些 php 框架。

由于这两个标头不是用html编写的,因此浏览器不必下载整个HTTP响应,从而减少了流量。所以我建议你使用它们。

我相信一点谷歌搜索可能会有所帮助。

什么优先:ETag 或 Last-Modified HTTP 标头?

于 2012-09-05T11:07:41.757 回答