在这件事上真的很困惑。
我正在尝试用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
*当然,清单文件本身被排除在缓存:节之外。
在同一个目录中也有一个.htaccess文件,其中包含以下内容:
<IfModule mod_expires.c>
ExpiresActive On
ExpiresByType text/cache-manifest "access plus 0 seconds"
</IfModule>这个站点是用CakePHP构建的,它显然有一些我不太了解的“有用”的缓存机制。我假设PHP头会绕过任何..。PHP可以做到。
那我错过了什么?
发布于 2012-12-11 13:35:20
实际上,看上去其中一种效果很好。缓存只需30+几秒钟就能意识到它需要更新。
发布于 2016-05-12 01:06:33
缓存清单工作的方式是,为了使清单更新自己,清单中的一些文本必须更改,即使它只是一个字母。这可以通过让在每次代码更改时添加一个时间戳来实现。
https://stackoverflow.com/questions/13815723
复制相似问题