Подтвердить что ты не робот

Как полностью отключить кеширование в CakePHP?

Итак, я открыл кеш-шлюзы в своем приложении Cakephp, и теперь я хочу их закрыть...

Я сделал все, что в моих силах: удалить все файлы в папке tmp (но не в папках), включил "Cache.disable" в файле core.php в моем приложении, попытался очистить кеш от в некоторых контроллерах с clearCache() и Cache:: clear() (но я подозреваю, что это не работает, потому что не загружает контроллер - из-за кэширования).

Я довольно эффективно остановил процесс разработки только потому, что кеширование не отключается. У кого-нибудь есть идеи, которые я мог бы попробовать? Я начинаю думать, что это может быть в браузере или, может быть, в моем сервисе хостинга, но, возможно, только Cakephp возится со мной.

4b9b3361

Ответ 1

Чтобы исключить кеширование браузеров в качестве основной причины, вы можете попробовать добавить следующие строки:

header('Cache-Control: no-store, private, no-cache, must-revalidate');                  // HTTP/1.1
header('Cache-Control: pre-check=0, post-check=0, max-age=0, max-stale = 0', false);    // HTTP/1.1
header('Pragma: public');
header('Expires: Sat, 26 Jul 1997 05:00:00 GMT');                                       // Date in the past  
header('Expires: 0', false); 
header('Last-Modified: '.gmdate('D, d M Y H:i:s') . ' GMT');
header('Pragma: no-cache');

Сочетание всех этих заголовков HTTP-заголовков, связанных с кэшированием, по моему опыту, работало во всех браузерах, а также охватило некоторые очень агрессивные прокси-серверы кэширования.

Ответ 2

Вид длинного снимка (плюс эта ветка старая, но о хорошо), но у меня была аналогичная проблема: я не мог заставить IE прекратить кеширование запросов ajax (используя jQuery). После сильной боли и головной боли прост:

$.ajaxSetup({cache:false});

сделал трюк. Должен любить IE...

Ответ 3

Вы можете посмотреть свой код контроллера для кеширования некоторых элементов и установить их в false. Это относится к app_controller.php или Controller/AppController.php в зависимости от версии используемого вами торта.

Controller::cacheAction = false

echo $this->element('latest_comments', array(), array('cache' => false));

Вы можете попробовать добавить Controller::disableCache(); в действие вашего контроллера.

Ответ 4

У меня возникла проблема с тем, что модель кэшируется и больше не отражает схему таблицы.

Мне пришлось обновить /config/core.php и установить "debug: 2" Это отключает кэширование моих моделей и устраняет проблемы.