Azure Sitecore媒体库&;天青CDN

Azure Sitecore媒体库&;天青CDN,azure,sitecore,cdn,sitecore-media-library,Azure,Sitecore,Cdn,Sitecore Media Library,我计划在Sitecore媒体库顶部使用Azure CDN,据我所知,Azure CDN不支持延迟加载,唯一简单的方法是Sitecore Azure CDN连接器中描述的根目录(基本上是在发布事件上创建MediaLibrary文件夹结构和文件) 我看到的问题是,在Sitecore中,通过url中的高度和宽度,您可以动态地调用resize来调整大小,但我不确定如何从CDN的角度处理这个问题。 很高兴了解您的意见并克服此限制。 Stelio对你来说,也许不是一个解决方案,但我会选择另一个CDN。Azu

我计划在Sitecore媒体库顶部使用Azure CDN,据我所知,Azure CDN不支持延迟加载,唯一简单的方法是Sitecore Azure CDN连接器中描述的根目录(基本上是在发布事件上创建MediaLibrary文件夹结构和文件) 我看到的问题是,在Sitecore中,通过url中的高度和宽度,您可以动态地调用resize来调整大小,但我不确定如何从CDN的角度处理这个问题。 很高兴了解您的意见并克服此限制。
Stelio

对你来说,也许不是一个解决方案,但我会选择另一个CDN。Azure CDN中的这一限制对您的解决方案造成了太大的限制。正如您所描述的,您应该真正利用Sitecore中的调整大小功能,以保持良好的体系结构和可维护的代码


其他人也面临同样的问题,并选择了其他CDN选项,如Akamai和AWS CloudFront:

如果您使用Azure PaaS并使用WebRoles(如使用Sitecore Azure模块),那么您应该能够更轻松地将云服务与Azure CDN集成

我不确定您与Azure集成的具体计划,但与其担心任何Sitecore处理程序和将文件推送到Azure,我建议您配置CDN端点,然后将所有媒体请求重定向到
/CDN
文件夹。这将导致Azure缓存您的动态内容,并考虑任何url参数(如调整大小)。如果未缓存内容,则应从Sitecore检索请求,然后缓存以备将来的任何请求,就像边缘缓存服务器一样工作

利用此功能的最简单方法是设置媒体前缀链接:

<setting name="Media.MediaLinkPrefix" value="cdn/media" />
您可能只希望在CD环境中执行此操作。此外,您还可以利用这一点为您的静态图像。您需要确保它们的前缀也都是
/cdn
,但如果文件夹是
/cdn/images
,则可以使用不同的URL重写规则将其映射回
/images

其他一些信息:

  • -阅读“使用CDN云服务”一节
不幸的是,我没有访问Azure实例的权限,因此无法对此进行测试


更新:我写了一篇关于将Sitecore与Azure集成的文章,尽管它足够通用,可以在覆盖媒体处理程序的情况下与任何CDN提供商和任何版本的Sitecore一起使用。您可以在此处阅读更多内容:

我短期内考虑的唯一替代方案是使用Azure CDN处理静态图像,使用media library withtout CDN处理大小调整后的图像,并要求设计团队在上传前调整图像大小,以避免性能问题……嗨,Kam,实际上您是对的,现在,您可以将CDN配置为指向/CDN文件夹,并在CD和Media上使用重写规则。MediaLinkServerUrl这是一种轻松的生活。。。唯一的问题可能是更新medialibrary项并使cdn上的缓存版本无效,我想简单的选择应该是对mediaitems进行查询操作或只是重命名它……是的-
“计算机科学中只有两件困难的事情:缓存无效和命名”
:)您可以将媒体项的修改日期附加为查询字符串参数,只需覆盖MediaManager以始终包含此参数。
<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>