如何在 Cakephp 中完全禁用缓存?
所以我在我的 Cakephp 应用程序中打开了缓存闸门,现在我想关闭它们......
So I opened the cache floodgates in my Cakephp app and now I want to close them...
我已经做了我能做的几乎所有事情:删除 tmp 文件夹中的所有文件(但不是文件夹),在我的应用程序的 core.php 文件中打开Cache.disable",尝试清除缓存在一些带有 clearCache() 和 Cache::clear() 的控制器中(但我怀疑这不起作用,因为它没有加载控制器——由于缓存).
I've done pretty much everything I can: delete all files in the tmp folder (but not the folders), turned 'Cache.disable' on in the core.php file in my app, have tried clearing the cache from within some controllers with clearCache() and Cache::clear() (but I suspect this doesn't work because it's not loading the controller -- due to caching).
我几乎有效地停止了我的开发过程,因为缓存不会关闭.任何人都有一些我可以尝试的想法?我开始认为它可能在浏览器中,也可能在我的托管服务中,但可能只是 Cakephp 惹恼了我.
I've pretty much effectively halted my development process just because caching won't turn off. Anyone have some ideas that I could try? I'm starting to think it may be within the browser or maybe my hosting service, but it's probably just Cakephp messing with me.
推荐答案
要排除浏览器缓存作为根本原因,您可以尝试添加以下几行:
To rule out browser caching as the root cause, you might try adding the following lines:
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');
根据我的经验,所有这些缓存破坏 HTTP 标头的组合适用于所有浏览器,并且还绕过了一些非常激进的缓存代理.
The combination of all these cache-busting HTTP headers has, in my experience, worked in all browsers, and has got around some very aggressive caching proxies as well.
相关文章