gpt4 book ai didi

mobile - CDN上的全站点缓存有问题吗? (例如,移动浏览器的备用内容)

转载 作者:行者123 更新时间:2023-12-02 04:18:08 24 4
gpt4 key购买 nike

我们正在考虑将站点的核心(不需要动态生成的所有内容)托管在CDN上,以便我们的根域(例如“http://example.com/”)指向CDN,那么所有动态内容都将指向CDN备用二级域名(例如用于搜索的http://search.example.com/),或者通过对备用域名(例如http://ajax.example.com/)的AJAX调用而位于静态内容之上。

对于许多站点来说,这似乎是非常可取的,但是即使在CDN主页上,我也看不到太多有关进行整个站点缓存的信息。我至少发生了一个明显的问题,即我们当前正在检测用户是否来自移动浏览器,如果用户来自移动浏览器则提供移动内容。问题是,据我所知,对于大多数CDN,您只能存储在页面的版本上,因此,如果缓存常规页面,则移动浏览器将看到该版本,而不是移动版本(显然反之亦然)。

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

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

编辑后添加了一些我忘记的东西:

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

可能会导致对此问题做出任何解答的一个限制因素是,我们需要针对SEO的目的非常明确地指定主站点的URL,但我们根本不关心移动版本的SEO。

最佳答案

我们在CDN(EdgeCast)上有规则,该规则将缓存同一个传入Url的多个版本(Desktop,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个不同的Urls,因此将缓存3个不同的页面。 querystring对最终用户完全透明。即使您将响应式设计与媒体查询一起使用,这种方法也非常有用,它使您可以灵活地在服务器级别更改HTML。

关于mobile - CDN上的全站点缓存有问题吗? (例如,移动浏览器的备用内容),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1480038/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com