У меня не особо сложная настройка CakePHP (1.3).Я обнаружил очень странное поведение, по-видимому, связанное с кэшем представлений.
Я кеширую два файла представления, которые захватывают динамическую навигацию, используя requestAction.Если я удаляю один или оба из этих файлов кэша из файловой системы, браузер ненадолго зависает, а затем выдает страницу с ошибкой:
Страница перенаправляется неправильно
Firefox обнаружил, что сервер перенаправляет запрос на этот адрес способом, который никогда не будет завершен.
Эта проблема иногда может быть вызвана отключением или отказом принимать файлы cookie.
Apache сам по себе не регистрирует никаких ошибок, что странно, потому что если бы он каким-то образом застрял в бесконечном цикле, как думает Firefox, он наверняка появится в журнале?Если я возвращаю файлы кеша обратно, Cake отображает все как обычно.
Что происходит?Кто-нибудь сталкивался с чем-то подобным?
Вызовы действия запроса выглядят так:
<?php
$topnav = $this->requestAction('/pages/getDynamicTopMenu');
foreach($topnav as $item):
if($item['Page']['title'] == 'Home') {
echo '<li class="'.$item['Page']['slug'].'">'.$this->Html->link($item['Page']['title'].'','/').'</li>';
} else {
echo '<li class="'.$item['Page']['slug'].'">'.$this->Html->link($item['Page']['title'].'','/pages/view/'.$item['Page']['slug'].'').'</li>';
}
endforeach;
?>
И соответствующие функции выглядят так:
function getDynamicTopMenu(){
return $this->Page->find('all', array(
'conditions' => array('Page.published =' => '1','Page.top_menu' => '1'),
'fields' => array('Page.title','Page.slug','Page.top_menu'),
'order' => array('Page.id')
));
}