5

我有一个基于 CI 2.1.0 构建的博客类型应用程序。当我添加

$this->output->cache(5);

对于我的控制器,CI 正确缓存了页面,并且加载速度很快。

我的问题是,如果有人对该帖子发表评论,则该评论将在缓存过期之前显示。

我想知道是否有人有关于如何在每次更改特定页面时强制刷新缓存的指示,或者是否进行了后期编辑等。

提前致谢。

4

2 回答 2

5

来自 CodeIgniter 文档:

如果您不再希望缓存文件,您可以删除缓存标签,当它过期时将不再刷新。注意:删除标签不会立即删除缓存。它必须正常到期。如果您需要提前将其删除,则需要手动将其从缓存文件夹中删除。

对于以编程方式删除缓存文件,您可以使用

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;
        }
    }
于 2012-05-18T19:36:32.210 回答
4

您可以扩展输出类以启用清除页面缓存。看看这里: https ://github.com/EllisLab/CodeIgniter/wiki/Clear-Page-Cache

于 2012-05-18T19:36:46.873 回答