Mobile CDN上的整个站点缓存存在问题?(例如,移动浏览器的替代内容)

Mobile CDN上的整个站点缓存存在问题?(例如,移动浏览器的替代内容),mobile,cdn,Mobile,Cdn,我们正在考虑将我们站点的核心(不需要动态生成的所有内容)托管在CDN上,这样我们的根域(例如“”)将指向CDN,然后所有动态内容将指向另一个二级域(例如“用于搜索”)或者通过AJAX调用另一个域(例如),在静态内容之上分层 这对于很多网站来说似乎是非常理想的,但我甚至在CDN主页上也看不到关于进行整个网站缓存的太多信息。我至少遇到了一个明显的问题,那就是我们目前检测用户是否来自移动浏览器,如果他们来自移动浏览器,则提供移动内容问题是,据我所知,大多数CDN只能存储在一个页面的版本上,因此如果缓存

我们正在考虑将我们站点的核心(不需要动态生成的所有内容)托管在CDN上,这样我们的根域(例如“”)将指向CDN,然后所有动态内容将指向另一个二级域(例如“用于搜索”)或者通过AJAX调用另一个域(例如),在静态内容之上分层

这对于很多网站来说似乎是非常理想的,但我甚至在CDN主页上也看不到关于进行整个网站缓存的太多信息。我至少遇到了一个明显的问题,那就是我们目前检测用户是否来自移动浏览器,如果他们来自移动浏览器,则提供移动内容问题是,据我所知,大多数CDN只能存储在一个页面的版本上,因此如果缓存常规页面,移动浏览器将看到该页面,而不是移动版本(显然,反之亦然)

在某种程度上,我们可以通过将移动内容移动到一个单独的域(如m.example.com)来解决这个问题,但我们需要CDN来检测移动浏览器并将其重定向到该域(我们也希望该域托管在CDN上,但显然是指向移动内容而不是常规内容)

这似乎应该得到广泛的支持,但我找不到太多关于它的信息。有人做过类似的事情吗?如果有,您使用了什么CDN以及如何解决这个问题?是否还有其他需要克服的重大障碍

编辑后添加了一些我忘记的内容:

我们还考虑过使用javascript重定向到移动站点,但显然,没有javascript的老式手机将被冷落,它们可能是最需要移动版本的手机


对于这个问题的任何答案,一个可能的限制因素是,我们需要主站点的URL对于SEO目的非常具体,但我们根本不关心移动版本的SEO。

如果不同设备(如手机)的页面呈现不同它不是静态内容,不应出现在您的CDN上

将真正的静态文件放在CDN上,并考虑页面的不同缓存策略。

无论如何,你也可以在服务器端检测客户端的浏览器,而不是通过JavaScript。事实上,我建议你不要使用JavaScript。然后你可以实现重定向方法

希望能有所帮助。

我们的CDN(EdgeCast)中有规则,可以缓存同一传入Url的多个版本(桌面、Iphone、Blackberry等)。CDN规则将查询字符串附加到源服务器的请求中。源服务器上的自定义代码根据传入的查询字符串呈现正确的版本。例如:

Desktop:    CDN requests /?nomobile  origin server returns Desktop rendering
Iphone:     CDN requests /?iphone    origin server returns Iphone rendering
Blackberry: CDN requests /?mobile    origin server returns Mobile rendering
就CDN而言,有3个不同的URL,因此缓存了3个不同的页面。查询字符串对最终用户来说是完全透明的。即使您对媒体查询使用响应式设计,这种方法在为您提供在服务器级别更改HTML的灵活性方面也是非常有价值的