控制器代码:
这段代码实现通过判断用户UA来适配不同的模板
public function index(){
//....获取数据、其他操作等
//通过UA判断用户设备类型,渲染输出不同的模板
if ($this->request->isMobile()) {
return $this->fetch('手机端模板');
} else {
return $this->fetch('PC端模板');
}
}配置文件config/app.php开启请求缓存 : // 是否开启请求缓存 true自动缓存 支持设置请求缓存规则
'request_cache' => true,
// 请求缓存有效期
'request_cache_expire' => null,
// 全局请求缓存排除规则
'request_cache_except' => [],那么问题来了,用户A使用电脑访问一个首次被访问的URL,那么会生成一个缓存文件,而后用户B使用手机端访问这个URL,直接会读取缓存文件返回给用户B,不会进行UA的判断。但是用户B需要的是返回移动端渲染的模板给他。这种情况,应该算是bug或者是功能缺陷?有没有解决方案呢?
最佳答案