Sitecore媒体库& Azure CDN

时间:2015-03-02 12:15:35

标签: azure sitecore cdn sitecore-media-library

我打算在Sitecore媒体库的顶部使用Azure CDN,据我所知,Azure CDN不支持延迟加载,唯一简单的方法是Sitecore Azure CDN连接器中描述的根(基本上创建MediaLibrary文件夹结构)和发布事件上的文件) 我可以看到它的问题是调整大小的图像,在Sitecore中,你可以动态调用resize在URL中传递高度和宽度的项目,但我不知道如何从CDN的角度处理这个问题。 很高兴知道您的意见并解决此限制。 斯泰利奥

2 个答案:

答案 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 Modulecdn/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

其他一些信息:

不幸的是,我无法访问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