我正在检查用户是在移动设备或桌面上浏览,并根据我调用给定网址的normal_view或同一网址的mobile_view。所以URL和控制器功能是一样的,只是视图不同(移动或桌面)。 我使用Codeigniter内置输出缓存,但如果第一个用户将打开页面,加载normal_view,它将其放入输出缓存,直到缓存过期,无论用户是从哪个浏览,都只加载该视图移动或PC。
如何在不为移动版和桌面版制作不同网址的情况下解决此问题?有什么方法可以单独缓存视图吗?
答案 0 :(得分:0)
通过在Codeigniter中使用用户代理类库,我们可以实现这样的
例如:
$this->load->library('user_agent');
if ($this->agent->is_mobile('iphone'))
{
$this->load->view('iphone/home'); //iphone view page
}
else if ($this->agent->is_mobile())
{
$this->load->view('mobile/home'); //mobile view page
}
else
{
$this->load->view('web/home'); // web page view
}
注意:我的建议是你可以使用任何CSS框架工作,如Bootstrap 无需为移动视图开发单独的视图。它可以根据设备大小进行处理
Bootstrap easily and efficiently scales your websites and applications with a single code base, from phones to tablets to desktops with CSS media queries.