我使用CodeIgniter。我的页面中一部分总是被缓存,无法通过浏览器的Ctrl+F5
清除。当我在视图中更改页面名称时,它却起作用了!?
如何在CodeIgniter中清除页面缓存?
我使用CodeIgniter。我的页面中一部分总是被缓存,无法通过浏览器的Ctrl+F5
清除。当我在视图中更改页面名称时,它却起作用了!?
如何在CodeIgniter中清除页面缓存?
您需要手动删除 application/cache
文件夹中缓存的项目。
function delete_cache($uri_string=null)
{
$CI =& get_instance();
$path = $CI->config->item('cache_path');
$path = rtrim($path, DIRECTORY_SEPARATOR);
$cache_path = ($path == '') ? APPPATH.'cache/' : $path;
$uri = $CI->config->item('base_url').
$CI->config->item('index_page').
$uri_string;
$cache_path .= md5($uri);
return unlink($cache_path);
}
public function clear_path_cache($uri)
{
$CI =& get_instance();
$path = $CI->config->item('cache_path');
//path of cache directory
$cache_path = ($path == '') ? APPPATH.'cache/' : $path;
$uri = $CI->config->item('base_url').
$CI->config->item('index_page').
$uri;
$cache_path .= md5($uri);
return @unlink($cache_path);
}
/**
* Clears all cache from the cache directory
*/
public function clear_all_cache()
{
$CI =& get_instance();
$path = $CI->config->item('cache_path');
$cache_path = ($path == '') ? APPPATH.'cache/' : $path;
$handle = opendir($cache_path);
while (($file = readdir($handle))!== FALSE)
{
//Leave the directory protection alone
if ($file != '.htaccess' && $file != 'index.html')
{
@unlink($cache_path.'/'.$file);
}
}
closedir($handle);
}
我在控制器中添加了一个端点
function delete_cache() {
preg_match("/(\/index.php)(?<endpoint>\/[\w.-\/]*)/",
$_SERVER["HTTP_REFERER"], $result);
$this->output->delete_cache($result["endpoint"]);
redirect($result["endpoint"]);
}
然后我添加了一个指向此端点的刷新按钮。 当用户单击刷新按钮时,当前缓存文件将被删除,然后重定向到页面。
这可能是在一个session
中。尝试删除你的cookies。