更新html文件,以便浏览器知道不使用缓存中的那个

时间:2012-09-05 10:41:54

标签: html caching apache2

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

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

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

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

3 个答案:

答案 0 :(得分: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" />
来自Answer

Using tags to turn off caching in all browsers?

答案 1 :(得分:3)

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

<meta http-equiv='cache-control' content='no-cache'>
<meta http-equiv='expires' content='0'>
<meta http-equiv='pragma' content='no-cache'>

答案 2 :(得分:2)

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

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

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

What takes precedence: the ETag or Last-Modified HTTP header?