CakePHP页面偶尔会丢失布局 - 帮助?

时间:2011-07-20 15:51:59

标签: caching cakephp layout

我有一个CakePHP网站,其主页使用Cake的默认选项一次缓存10分钟。然而,我已经被警告“每隔一段时间”,每天一次,它会丢失布局,只显示没有标题,样式等的页面内容。

删除缓存版本并重新生成页面显然可以解决问题。但是为什么这可能会发生在一起呢?我不能说我已经看到它发生在我自己(在我的任何CakePHP项目中),但其他人是否有任何经验,或者有任何解决方法的想法?非常感谢!

编辑:看一个破损的缓存的home.php文件与工作缓存文件相比,我发现了这一行:

$controller->layout = $this->layout = 'ajax'; //broken
$controller->layout = $this->layout = 'default'; //working

这似乎有点突破。我猜有时页面是由Ajax请求调用的,然后以该格式缓存,直到缓存过期。任何人都知道为什么会这样(我不认为我们试图通过Ajax在任何地方调用主页,我们甚至没有拥有 ajax布局!)如果有什么我们可以要阻止吗?

2 个答案:

答案 0 :(得分:1)

您确定没有ajax requests干扰您的代码/请求吗?

我们最近遇到了一个噩梦问题,即蛋糕在后退/前进浏览器点击时没有呈现布局。见这里:CakePHP no layout on back and forward button

它可能也有助于查看蛋糕请求周期(http://book.cakephp.org/2.0/en/getting-started/a-typical-cakephp-request.html)并缩小在请求(以及哪里)发生错误时,尽管我不知道如何重现它:)

希望你明白这一点!

答案 1 :(得分:0)

此外,如果您的视图中有任何错误,有时它将无法加载布局。它只会吐出视图,直到它遇到错误。也许错误不在于显示您的布局,而在于您使用帮助器生成错误的一些奇怪情况。