启用查询字符串后如何使用缓存功能?
我的项目启用了查询字符串功能,所有我的URL是这样的:/index.php?c=login
/index.php?c=reg
当我在reg控制器的index方法中使用
$this->output->cache(6);
生成缓存文件后不管访问那个地址都是返回的这个缓存文件。
缓存功能生成的文件名是根据URL地址来的把
难道是启用查询字符串后缓存功能把这些地址都当成一样的了么?
我看了下Output类中的实现,有如下代码:
$uri = $this->config->item('base_url').
$this->config->item('index_page').
$this->uri->uri_string();
在启用了查询字符串的状态下,
/index.php?c=reg
/index.php?c=login
得到的是一样的URL,所以会调用一样的缓存文件。
才会导致上面的问题。
启用查询字符串后URL类是不是也不能使用了?
$this->uri->uri_string()
得到值明显不对。 我将Output类修改了一下:
// $uri = $CI->config->item('base_url').
// $CI->config->item('index_page').
// $CI->uri->uri_string();
$uri = $_SERVER['REQUEST_URI'];
这样可以生成不同的缓存文件了。
这样做有什么问题么?
页:
[1]