0

我们正在运行一个 Java/Spring MVC 应用程序,其中 Tomcat 6 作为 servlet 容器,Apache 2.2 作为 Web 服务器。

我们最近部署了一个全新的品牌重塑,彻底改变了网站的外观和感觉。

我们将 ?v=1 参数附加到 head 部分的资源中,但我们仍然遇到一些导致问题的旧缓存资源问题。

我们可以在 tomcat 或 apache 中设置什么来确保提取新副本,还是我们需要使用修订号来强制客户端获取新版本的资源?

4

2 回答 2

1

您可以尝试使用元标记,如下所示:

<meta http-equiv="Expires" content="Mon, 26 Jul 1997 05:00:00 GMT" />
<meta http-equiv="Cache-Control" content="no-store, no-cache, must-revalidate">
<meta http-equiv="Pragma" content="no-cache">

但是,我意识到 IE9 似乎在我的一个 Web 项目中忽略了这些元标记。所以,我没有使用元标记,而是在 url 上附加了一些随机数,比如?v=1235324324......你可以使用Math.random()or Date.getTime(),基本上是独一无二的。您要确保v每次的值都不同,而不是一直使用值1

于 2013-01-11T20:00:51.853 回答
0

AFAIK 如果没有开发人员工具,就无法禁用浏览器缓存。

虽然,您可以通过 webapp 本身的 HTTP 标头禁用浏览器缓存。对于任何 2000 年后的浏览器,仅 HTTP 1.1“Cache-Control”标头就足够了。但是为了提供额外的保护,服务器可以同时发出HTTP 1.1 "Cache-Control" 和 HTTP 1.0 "Expires" 标头

于 2013-01-11T16:19:59.447 回答