我打算在Sitecore媒体库的顶部使用Azure CDN,据我所知,Azure CDN不支持延迟加载,唯一简单的方法是Sitecore Azure CDN连接器中描述的根(基本上创建MediaLibrary文件夹结构)和发布事件上的文件) 我可以看到它的问题是调整大小的图像,在Sitecore中,你可以动态调用resize在URL中传递高度和宽度的项目,但我不知道如何从CDN的角度处理这个问题。 很高兴知道您的意见并解决此限制。 斯泰利奥
答案 0 :(得分:2)
如果您使用Azure PaaS并使用WebRoles(例如使用Sitecore Azure模块时),那么您应该能够更轻松地将云服务与Azure CDN集成。
我不确定您与Azure集成的确切计划是什么,但不是担心任何Sitecore处理程序并将文件推送到Azure,我建议您配置CDN端点,然后将所有媒体请求重定向到/cdn
文件夹。这将导致Azure缓存您的动态内容,同时考虑任何url参数(如调整大小)。如果内容未缓存,则应从Sitecore检索请求,然后缓存以备将来的任何请求,就像边缘缓存服务器一样。
利用此功能的最简单方法是设置媒体前缀链接:
<setting name="Media.MediaLinkPrefix" value="cdn/media" />
然后,您可以使用URLRewrite Module将cdn/media
映射回~/media
。或者只是在Sitecore中为此添加处理程序:
<customHandlers>
<handler patch:before="*[@trigger='~/media/']" trigger="cdn/media/" handler="sitecore_media.ashx" />
</customHandlers>
<mediaLibrary>
<mediaPrefixes>
<prefix value="cdn/media"/>
<prefix value="~/media"/>
</mediaPrefixes>
</mediaLibrary>
您可能希望仅在CD环境中执行此操作。此外,您还可以利用此功能来获取静态图像。您需要确保它们都带有/cdn
前缀,但如果文件夹为/cdn/images
,那么您可以使用不同的网址重写规则将其映射回/images
。
其他一些信息:
Using cloud services with the CDN
部分不幸的是,我无法访问Azure实例,因此无法对此进行测试。
答案 1 :(得分:-1)
好吧,也许不是你的情况下的解决方案,但我会去另一个CDN。 Azure CDN中的此限制只会对您的解决方案施加太大的限制。如您所述,您应该真正利用Sitecore中的resize功能,以保持良好的架构和可维护的代码。
其他人也遇到了同样的问题并选择了其他CDN选项,例如Akamai和AWS CloudFront:http://feedback.azure.com/forums/169397-cdn/suggestions/3046714-custom-origin-support-to-cdn