【问题标题】:Google Chrome Cache谷歌浏览器缓存
【发布时间】:2011-05-07 00:47:24
【问题描述】:

我有一个嵌入了 flash (flex) 应用程序的 html 页面。

我有以下标题:

<META HTTP-EQUIV="CACHE-CONTROL" CONTENT="NO-CACHE">
<META HTTP-EQUIV="CACHE-CONTROL" CONTENT="NO-STORE">
<META HTTP-EQUIV="Pragma" CONTENT="no-cache">
<META HTTP-EQUIV="Expires" CONTENT="-1">

此外,每次发布新版本的应用程序时,我都会更改文件名。所以,它变成了类似于 MyApp_v1.swf 的东西,然后更新为 MyApp_v2.swf。

尽管如此,chrome 仍然会缓存 html 页面和 swf 文件。这是一个主要问题,因为除非清除浏览器缓存,否则客户端不会看到更新的 swf。

我什至尝试通过更改 htaccess 文件并重命名托管 swf 文件的 index.html 文件来解决此问题:

RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule ^(.*)$ https://www.mysite.com/app[R,L] 
DirectoryIndex index.html #this was changed from myapp.html

即使在这样做之后,Chrome 仍然会缓存 swf,并且仍在从旧的 html 文件中读取。我在 html 上做了一个查看源代码,它仍然显示旧文件。

这在任何其他浏览器中都可以正常工作。

【问题讨论】:

    标签: google-chrome browser-cache


    【解决方案1】:

    这两个错误报告相关,这里有一些很好的相关信息:

    Issue 28035 - chromium - Cache doesn't adhear to No cache options ( google crome )

    Issue 64139 - chromium - Cache isn't revalidated properly, no-cache directive

    另一种解决方案可能是添加特定的cache-control 或pragma HTTP 标头,如上述链接中所述

    另外,愚蠢的问题,你在测试你的&lt;meta&gt; no-cache 标签之前清除了 chrome 缓存吗?想知道它是否仍在使用您更改之前的缓存。

    【讨论】:

    • 不幸的是,这不是一个完整的解决方案,因为我不可能告诉我所有的客户清除他们的缓存。基本上,他们永远被错误的页面永远困在无人区!我想另一种选择是将整个应用程序移动到服务器上的新目录中,并使用 .htaccess 重定向。这应该会强制进行适当的刷新并覆盖浏览器缓存,对吧?
    • 如果您在任何 src 或 href 属性(如 src="mipaht.jpg?ver=1" )的链接中添加请求参数,将强制浏览器更新源,适用于 javascript、图像、 css,所以也许在这种情况下也可以工作......
    • 如果您使用动态字符串,例如日期时间,您可以确保用户始终下载新版本并且从不缓存。例如:src="myfile.swf?ver=1407279708
    【解决方案2】:

    对于所有为此苦苦挣扎的人
    我发现了一些简单的东西......

    我试过了
    1. ctrl + f5
    2. ctrl + shift + 5
    3.在开发者工具中设置“无缓存”..

    最后对我有用的是
    在单击重新加载图标的同时按住 CTRL 键!

    【讨论】:

    • 这不是解决方案。如果页面声明“无缓存”,则不必手动强制它遵守指令。此外,无论是否指定 no-cache,这都适用。
    • 也许不是解决方案,但肯定很方便。
    【解决方案3】:

    使用这个“no-store”额外标签,缓存在 Chromium (Chrome) 中可以正常工作,就像在其他支持的浏览器中一样:

    header("Cache-Control: no-cache, no-store, must-revalidate");

    header("Pragma: no-cache, no-store");

    【讨论】:

      猜你喜欢
      • 2011-03-23
      • 2011-08-18
      • 2016-05-24
      • 2013-10-14
      • 2011-11-01
      • 2012-08-22
      • 2020-12-11
      • 2016-01-22
      • 1970-01-01
      相关资源
      最近更新 更多