我有一個嵌入了閃存(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上查看源代碼,並且仍然顯示舊文件。
這一切工作正常在任何其他瀏覽器。
不幸的是,這不是一個完整的解決方案,因爲它不可能告訴我所有的客戶清除緩存。基本上,他們永遠停留在無人地帶,永遠不正確的頁面!我想另一個選擇是將整個應用程序移動到服務器上的一個新目錄中,然後使用一個。htaccess重定向。這應該強制進行適當的刷新並覆蓋瀏覽器緩存,對吧? – JonoB 2011-05-08 01:16:05
如果您在src =「mipaht.jpg?ver = 1」之類的任何src或href屬性的鏈接中添加請求參數,將會強制瀏覽器更新源代碼,適用於javascript,圖像,css,因此在這種情況下也可以工作... – ncubica 2012-01-20 04:07:40
如果您使用動態字符串(如datetime),則可以確保用戶始終下載新版本並永不緩存。例如:'src =「myfile.swf?ver = 1407279708' – DrCord 2014-08-05 23:01:57