创建缓存页面:
一般情况,CI的页面缓存只需要再控制里面加上:
$this->output->cache(1); //表示缓存一分钟
即可!
CodeIgniter框架会自动在缓存文件夹创建一个页面缓存文件,一分钟之后会从新生成一次,覆盖原来的缓存文件,没有则创建缓存文件。
需要注意的是,对缓存来说,页面/ceshi/huancun/index 和 /ceshi/huancun 是两个不同的页面,会生成两个缓存。
删除缓存页面
删除缓存页面的方法是:
$this->output->delete_cache('/ceshi/huancun/index');
可以看出,只需要将完整的页面地址给到方法即可删除对应的缓存页面文件。
需要注意的是,删除缓存页面的方法,如果放在的要删除该页面对应的控制器里面,则删除缓存页面的方法无效,必须是非该删除页面的才可以
另外附上修改CI生成缓存的核心文件
在我实际的项目中,以后时候需要对页面缓存做二次操作,我们可以简化CI生成的方式,找到
systemcoreOutput.php
1、在第653行将:
$uri = $CFG->item('base_url').$CFG->item('index_page').$URI->uri_string;
修改为:
$uri = $URI->uri_string;
2、在第555行将:
$uri = $CI->config->item('base_url').$CI->config->item('index_page').$CI->uri->uri_string();
修改为:
$uri = $CI->uri->uri_string();
3、在第759行将:
$cache_path .= md5($CI->config->item('base_url').$CI->config->item('index_page').ltrim($uri, '/'));
修改为:
$cache_path .= md5(ltrim($uri, '/'));
这样,以后如果要对缓存操作,想知道缓存文件的名称只需要MD5($this->uri->uri_string())即可!