CodeIgniter: как глобально отключить кеширование?

Сайт моих клиентов сделан с CodeIgniter.
Проблема в том, что каждый раз, когда я делаю некоторые изменения, мне нужно очистить папку ‘cache’.

Я знаю, что вы можете отключить кэш в контроллере:

 $this->output->set_header('Last-Modified: ' . gmdate("D, d M Y H:i:s") . ' GMT');('Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0');
$this->output->set_header('Pragma: no-cache');
$this->output->set_header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
$this->output->set_header

Но как отключить его глобально на весь сайт?

0

Решение

вы можете глобально отключить весь кеш сайта с помощью htaccess

<FilesMatch "\.(html|htm|js|css|php)>
FileETag None
Header unset ETag
Header set Cache-Control "max-age=0, no-cache, no-store, must-revalidate"Header set Pragma "no-cache"Header set Expires "Wed, 11 Jan 1984 05:00:00 GMT"</FilesMatch>
3

Другие решения

Создать файл /application/core/My-Output.php это имеет следующие строки:

class MY_Output extends CI_Output {

function _display_cache(&$CFG, &$URI)
{
/* Disable Globally */
return FALSE;

/* OR - Disable for a specific IP Address */
if ( ($_SERVER['REMOTE_ADDR'] == '127.0.0.1') || (eregi("192.168.", $_SERVER['REMOTE_ADDR'])) )
{
return FALSE;
}

/* OR - disable based on a cookie value */
if ( (isset($_COOKIE['nocache'])) && ( $_COOKIE['nocache'] > 0 ) )
{
return FALSE;
}

/* Call the parent function */
return parent::_display_cache($CFG,$URI);
}

Это переопределит глобальный обработчик вывода в вашем приложении CodeIgniter любым удобным для вас способом.

0