Caching 在CakePHP中,元素缓存不起任何作用

Caching 在CakePHP中,元素缓存不起任何作用,caching,cakephp,Caching,Cakephp,我们的软件在cakePHP应用程序中使用以下方法进行元素缓存: 示例代码: <?php echo $this->element('cities-index', array('Cache' => array('time' => "12 hours")));?> 根据文档,这应该可以正常工作 我已经把这句话作为网页加载缓慢的一个主要原因(这个操作每执行一页要花费我们0.2秒的时间),并且我发现缓存完全没有任何作用 缓存在core.php中启用并设置为file,并且

我们的软件在cakePHP应用程序中使用以下方法进行元素缓存:

示例代码:

<?php echo $this->element('cities-index', array('Cache' => array('time' => "12 hours")));?>

根据文档,这应该可以正常工作

我已经把这句话作为网页加载缓慢的一个主要原因(这个操作每执行一页要花费我们0.2秒的时间),并且我发现缓存完全没有任何作用

缓存在core.php中启用并设置为file,并且app/tmp文件夹具有正确的权限。我们辛苦地浏览了cakePHP文档,结果被难住了


我们非常感谢您的帮助,谢谢

我不知道缓存配置是什么,但对我来说,缓存元素并不意味着缓存控制器和模型调用(我认为这是真正的瓶颈)。尝试缓存数据库调用,您的应用程序可能会变得更快。

您的调试级别设置为什么?某些调试级别(1或2-我不记得了)将禁用缓存

这在CakePHP 1.2.x和1.3.x之间也可能有所不同,所以也要知道哪个版本会有帮助。

小写“cache” “12小时”而不是“12小时” 添加了一个键

$this->element('cities-index', array('cache' => array('key'=>'cities-cache','time' => '+12 hour')));

Nik首先发布了正确的答案,但在对原始帖子的评论中。它可能没有被注意到。

我们还通过引用Cache helper在控制器级别启用了缓存,并为所有密集的数据库调用启用了$cacheActions。如果我错了,请原谅,元素缓存是否等同于“片段缓存”,因为它应该绕过任何和所有计算,而只是呈现缓存的HTML输出?不,它不是,因为控制器代码在视图代码之前执行,所以它与DB调用一起执行。只需确保缓存结果。很有趣,谢谢您的解释。不幸的是,我们已经在控制器中缓存了,但我将检查该部分是否工作。感谢您的帮助。控制器中启用了缓存,我仔细检查了文档:此页面表明元素缓存实际上应该已经足够了,它将阻止控制器(无论如何都使用缓存)运行requestAction。现在我被难住了。事实上,大多数人都在视图中使用requestAction,这样缓存就足够了。尝试以小写形式写入缓存,如:echo$this->element('latest_comments',array('cache'=>'+1小时));而不是问题中的“缓存”。