你如何在CakePHP中打开缓存?

时间:2011-02-05 03:04:12

标签: php cakephp cakephp-1.2

我正在使用CakePHP。我在控制器中有一个动作,用于生成应用程序的静态内容页面。我想缓存整个动作/视图。控制器是Pages,操作是Main。我没有看到视图的缓存文件出现在tmp / cache文件夹中。

  • 我已取消注释core.php中的Cache.check设置,因此它显示为:

    配置:: write('Cache.check',true);

  • 我已将缓存助手添加到页面控制器:

    var $ helpers = array('javascript','cache');

  • 我告诉控制器缓存名为“main”的操作:

    var $ cacheAction = array('main /'=> 86400);

  • 我已经确认今天app / tmp / cache文件夹中有其他缓存文件(模型缓存),所以我知道这不是权限问题。

这是我的页面控制器的顶部:

var $name = 'Pages';
var $helpers = array('Javascript','Cache');
var $uses = array();
var $components = array('Authentication','Security');
var $cacheAction = array('main/'=>86400);

我不确定在CachePHP中启用视图缓存时我缺少什么。我错过了什么吗?有什么想法吗?

2 个答案:

答案 0 :(得分:0)

愚蠢的检查,对不起,但只是为了确保:

将“javascript”和“缓存”字样大写

即。 var $helpers = array('Javascript','Cache');并非像你粘贴的那样。

确保您已添加

var $cacheAction = array('main/'=>86400);

var $helpers = array('Javascript','Cache');

在相应控制器的 Class 级别。

可能值得在app_controller中尝试帮助声明。

我不知道你是在Windows上还是更明智的东西。如果您使用的是Linux或OSX或其他任何内容,请在控制台窗口中将目录更改为app/tmpchmod -R 777 .这可能是递归的chown& chgrp也适用于任何网络用户。

删除所有缓存文件 - 将目录保留在那里。

再试一次。

答案 1 :(得分:0)

这是关于cakephp的视图缓存的全新帖子,您可能需要查看http://nuts-and-bolts-of-cakephp.com/2011/02/05/make-your-cakephp-app-ridiculously-faster-with-view-caching/