【发布时间】:2012-04-24 18:52:09
【问题描述】:
我有一个基于 PHP 的 Web 应用程序,并希望能够为移动用户提供通过一组专用的“移动友好”页面查看我网站内容的选项。移动网站的 URL 结构与桌面网站不同。
这个想法是,当移动用户第一次点击索引页面时,正则表达式会检查用户代理,如果他们是移动设备,他们可以选择查看桌面版或移动版网站。
问题是我正在使用我的 CDN 提供商 (Cotendo) 缓存静态 HTML。这意味着当缓存被填充时,移动用户可能会看到桌面站点的缓存版本并绕过移动/桌面选项页面。这也意味着,在缓存为空的情况下,移动用户可以强制 CDN 存储移动/桌面选项页面的缓存版本!
一种选择是在 CDN 级别检查用户代理并绕过移动用户的缓存检索。但是,该网站的很大一部分流量是由移动用户驱动的,目前还不能选择向移动用户提供非缓存内容。
【问题讨论】:
-
解决此问题的一种简单方法是使用 媒体查询 使用 响应式设计 提供同一页面。这样一来,无论分辨率如何,每个人都可以使用一个缓存页面,并且您不必摆弄不可靠的用户代理。