Страница CakePHP, периодически теряющая макет - Помощь? - PullRequest
6 голосов
/ 20 июля 2011

У меня есть сайт CakePHP, чья домашняя страница кэшируется по 10 минут за раз с использованием параметров по умолчанию Cake. Однако меня предупредили, что «время от времени», примерно раз в день, он теряет макет, просто отображает содержимое страницы без заголовка, стиля и т. Д.

Удаление кэшированной версии и восстановление страницы, по-видимому, решает проблему. Но почему это могло произойти? Я не могу сказать, что видел это сам (в любом из моих проектов CakePHP), но есть ли у кого-нибудь еще опыт или идеи о том, как это исправить? Очень ценится!

РЕДАКТИРОВАТЬ: глядя на сломанный кэшированный файл home.php по сравнению с рабочим файлом кэша, я заметил эту строку:

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

Это похоже на прорыв. Я предполагаю, что иногда страница вызывается с помощью Ajax-запроса, а затем кэшируется в этом формате, пока не истечет срок действия кэша. Кто-нибудь знает, почему это может происходить (я не думаю, что мы пытаемся назвать домашнюю страницу через Ajax где-нибудь, и у нас даже нет макета Ajax!), И если есть что-то, что мы можем сделать остановить это?

Ответы [ 2 ]

1 голос
/ 14 сентября 2012

Вы уверены, что нет ajax requests мешает вашему коду / запросу?

Недавно у нас была кошмарная проблема, когда торт не отображал раскладку при кликах назад / вперед в браузере. Смотрите здесь: CakePHP без макета на кнопках назад и вперед

Может также помочь изучить цикл запроса на торт (http://book.cakephp.org/2.0/en/getting-started/a-typical-cakephp-request.html)) и сузить, когда в запросе (и где) происходит ошибка, хотя я не знаю, как вы ее воспроизведите :)

Надеюсь, ты разберешься!

0 голосов
/ 11 августа 2011

Кроме того, если у вас есть какие-либо ошибки в вашем представлении, иногда он не загружает макет. Он будет просто выплевывать вид, пока не возникнет ошибка. Возможно, ошибка не в отображении вашего макета, а в каком-то странном случае, когда вы генерируете ошибку с помощью помощника.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...