请教大佬,这个缓存应该怎么设置?

浏览:463 发布日期:2020/05/28 分类:ThinkPHP5专区 关键字: 请求缓存 代码适配 自适应网站 缓存
请教下各位大佬,我通过判断客户端的类型,来返回不同的数据,代码如下:public function index(){
        //....获取数据、其他操作等
        //通过UA判断用户设备类型,渲染输出不同的模板
        if ($this->request->isMobile()) {
            return $this->fetch('手机端模板');
        } else {
            return $this->fetch('PC端模板');
        }
}
如果在配置文件里面开启“请求缓存”的话,如果移动端最先访问这个url,那么生成的缓存就是适配移动端的,pc端再访问这个url的话也会返回这个移动端的缓存文件给pc端。所以就需要把移动端和pc端分别生成不同的缓存。
后来尝试了一下,直接在配置文件里面给缓存自定义key:// 是否开启请求缓存 true自动缓存 支持设置请求缓存规则
'request_cache' => '__URL__' . (\think\facade\Request::isMobile() ? 'mobile' : 'pc'),
// 请求缓存有效期
'request_cache_expire' => null,
// 全局请求缓存排除规则
'request_cache_except' => [],
通过上面的方式,实现了对同一个请求的url,分别给移动端和pc端生成不同的缓存。

如果我在配置文件不开启自动请求缓存的情况下,我需要对某1个或者多个请求的url(控制器)分别生成移动端和PC端的缓存,应该怎么来实现呢 ?

我尝试了这样,但是不行        if ($this->request->isMobile()) {
            //$this->request->cache('key_m');
            return $this->fetch('index_m');
        } else {
            //$this->request->cache('key');
            return $this->fetch('index');
        }
最佳答案
评论( 相关
后面还有条评论,点击查看>>