我有一個構建於CI 2.1.0上的博客型應用程序。 當我添加Codeigniter緩存 - 在新帖子後刷新的建議
$this->output->cache(5);
到我的控制器,CI正確緩存的頁面,並快速載入。
我的問題是,如果有人對該帖子發表評論,直到緩存過期纔會顯示該評論。
我不知道是否有人對如何強制緩存刷新每次有一個變化的特定網頁,或後編輯而成,等
在此先感謝指針。
我有一個構建於CI 2.1.0上的博客型應用程序。 當我添加Codeigniter緩存 - 在新帖子後刷新的建議
$this->output->cache(5);
到我的控制器,CI正確緩存的頁面,並快速載入。
我的問題是,如果有人對該帖子發表評論,直到緩存過期纔會顯示該評論。
我不知道是否有人對如何強制緩存刷新每次有一個變化的特定網頁,或後編輯而成,等
在此先感謝指針。
從CodeIgniter的文檔:
如果您不再希望緩存文件可以刪除緩存標籤 和到期時將不再刷新。注意:刪除 標籤不會立即刪除緩存。它通常必須到期 。如果您需要提前將其刪除,您需要手動將其從緩存文件夾中刪除。
對於編程刪除緩存文件,你可以使用
下面這個函數將刪除緩存文件
function delete_cache($uri_string)
{
$CI =& get_instance();
$path = $CI->config->item('cache_path');
$cache_path = ($path == '') ? APPPATH.'cache/' : $path;
$uri = $CI->config->item('base_url').
$CI->config->item('index_page').
$uri_string;
$cache_path .= md5($uri);
if (file_exists($cache_path))
{
return unlink($cache_path);
}
else
{
return TRUE;
}
}
您可以擴展輸出級,使清晰的頁面緩存。看看這裏:https://github.com/EllisLab/CodeIgniter/wiki/Clear-Page-Cache
當然,我不想手動刪除,因爲我不知道哪些緩存的文件指向已更新的頁面 - 如何有選擇地刪除該程序更新文件? – pepe