我有一个嵌入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上执行了一个 View 源,它仍然显示旧文件。

在所有其他浏览器上,这些都可以正常工作。

最佳答案

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

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-controlpragma HTTP header ,如上面的链接中所述

另外,愚蠢的问题是,您是否在测试<meta>无缓存标签之前清除了Chrome缓存?想知道它是否仍在使用更改之前的缓存。

关于google-chrome - Google Chrome缓存,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5918408/

10-12 00:09
查看更多