dolphin 发表于 2015-3-15 17:12:17

启用查询字符串后如何使用缓存功能?

我的项目启用了查询字符串功能,所有我的URL是这样的:

/index.php?c=login

/index.php?c=reg

当我在reg控制器的index方法中使用

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

生成缓存文件后不管访问那个地址都是返回的这个缓存文件。

缓存功能生成的文件名是根据URL地址来的把

难道是启用查询字符串后缓存功能把这些地址都当成一样的了么?



dolphin 发表于 2015-3-15 17:22:06

我看了下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,所以会调用一样的缓存文件。

才会导致上面的问题。

dolphin 发表于 2015-3-15 17:23:48

启用查询字符串后URL类是不是也不能使用了?

$this->uri->uri_string()

得到值明显不对。

dolphin 发表于 2015-3-15 17:30:26

我将Output类修改了一下:


                // $uri =        $CI->config->item('base_url').
                //                 $CI->config->item('index_page').
                //                 $CI->uri->uri_string();

                $uri = $_SERVER['REQUEST_URI'];



这样可以生成不同的缓存文件了。

这样做有什么问题么?
页: [1]
查看完整版本: 启用查询字符串后如何使用缓存功能?