2012-12-11 139 views
0

真的難住這一個。緩存清單緩存本身

我試圖緩存一些資源與HTML5緩存清單(是的,我知道,不要判斷我),但清單似乎是緩存本身。


清單文件實際上是一個動態PHP腳本,所以它有一個.php擴展名。


以下標頭被設定(How do I completely disable caching in Cakephp?

header('Cache-Control: no-store, private, no-cache, must-revalidate');     // HTTP/1.1 
header('Cache-Control: pre-check=0, post-check=0, max-age=0, max-stale = 0', false); // HTTP/1.1 
header('Pragma: public'); 
header('Expires: Sat, 26 Jul 1997 05:00:00 GMT');          // Date in the past 
header('Expires: 0', false); 
header('Last-Modified: '.gmdate('D, d M Y H:i:s') . ' GMT'); 
header('Pragma: no-cache'); 

header("Content-type: text/cache-manifest"); 

該清單包含在網絡部分中的以下:

NETWORK: 
/cachemanifest 
/cachemanifest/ 
/cachemanifest/* 
*/cachemanifest/* 
cachemanifest/ 
cachemanifest 

/cachemanifest/manifest.php 
cachemanifest/manifest.php 

* 

當然,清單文件本身是排除在CACHE:部分之外。


還有在同一目錄中的.htaccess文件如下:

<IfModule mod_expires.c> 
    ExpiresActive On 
    ExpiresByType text/cache-manifest "access plus 0 seconds" 
</IfModule> 

該網站是建立與CakePHP的,這顯然有我,我不」一些「有用」的緩存機制對此知之甚少。我會假設PHP標題將繞過任何... PHP可以做的。


那麼,我錯過了什麼?

回答

0

其實,它看起來像其中一個工作。緩存需要30多秒才能意識到它需要更新。

0

方式緩存清單的工作方式是清單更新自身,清單中的一些文本必須更改,即使它只是一個字母。這可以通過在每次代碼發生更改時使用構建自動添加器添加時間戳來完成。