Google Chrome Cache

2020-08-25 05:51发布

问题:

I have an html page that embeds a flash (flex) application.

I have the following headers:

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

In addition, each time I release a new version of the app, I change the file name. So, it becomes something like MyApp_v1.swf, which is then updated to MyApp_v2.swf.

Despite this, chrome still caches the html page and the swf file. This is a major problem, as clients do not then see the updated swf unless they clear their browser cache.

I even tried to get around this with changing the htaccess file, and renaming the index.html file that hosts the swf file:

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

Even after doing this, Chrome still caches the swf, and is STILL reading from the old html file. I do a view source on the html, and its still showing the old file.

This all works fine in any other browser.

回答1:

These two bug reports relate, some good relevant information in here:

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

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

Another solution may be to add specific cache-control or pragma HTTP headers as mentioned in the links above

Also, dumb question, did you clear chrome cache before testing your <meta> no-cache tags? wondering if it is still using cache from before your changes.



回答2:

For all you guys struggeling with this
i found something simple that works...

i tried
1. ctrl + f5
2. ctrl + shift + 5
3. setting the "no cache" in developer tools..

What worked for me in the end is to
Just hold the CTRL key while you click the reload icon!



回答3:

Use this "no-store" extra tag, and the cache works fine in Chromium (Chrome) as in the other capable browsers:

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

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