我打算在Sitecore媒体库顶部使用Azure CDN,据我了解,Azure CDN不支持延迟加载,唯一简单的方法是在Sitecore Azure CDN连接器中描述的根目录(基本上在发布事件中创建MediaLibrary文件夹结构和文件) 我可以看到它的问题是在Sitecore中调整大小的图像,您可以动态调整大小调整URL中的高度和宽度的项目,但我不知道如何从CDN的角度来处理这个问题。 很高兴知道您的意见并解决此限制。 StelioSitecore媒体库和Azure CDN
回答
如果您正在使用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
,那么你可以使用不同的URL重写规则将其映射回/images
。
一些额外的信息:
- Using the Windows Azure Content Delivery Network (CDN) - 读部分
Using cloud services with the CDN
起 - Publish Content to the Azure CDN with URLRewrite
- Integrate a cloud service with Azure CDN
不幸的是我没有访问到Azure的实例,这样无法检验这个。
好吧,也许不是你的情况的解决方案,但我会去另一个CDN。 Azure CDN中的这一限制只会对解决方案造成太大的限制。正如你所描述的,你应该真的在Sitecore中使用resize函数,以保持良好的架构和可维护的代码。
其他人也面临同样的问题,去了其他CDN选项,如Akamai和AWS CloudFront的:http://feedback.azure.com/forums/169397-cdn/suggestions/3046714-custom-origin-support-to-cdn
我在短期内考虑的唯一选择是将Azure CDN用于静态图像,并使用带有CDN的媒体库处理调整大小的图像,并要求设计团队在上传前调整图像大小以避免性能问题... – Stelio 2015-03-04 11:32:59
- 1. Microsoft Azure cdn vs媒体流服务
- 2. Sitecore的媒体库路径
- 3. Sitecore的媒体库错误
- 4. Sitecore的 - 不要发布媒体库
- 5. 如何自定义Sitecore媒体库
- 6. 打开Sitecore媒体库时获取404
- 7. 从sitecore媒体库下载项目
- 8. Sitecore媒体库与iOS不兼容?
- 9. Sitecore媒体库上传错误
- 10. Sitecore媒体项目和竞赛条件
- 11. Sitecore媒体项目下载
- 12. 从Azure媒体服务发布媒体
- 13. Azure媒体服务
- 14. Azure的媒体服务和HTML5视频
- 15. Azure blob存储和CDN
- 16. 媒体库和视频
- 17. 使用Sitecore项目Web API将Json文件项目上载到sitecore媒体库
- 18. Sitecore媒体文件自动发布
- 19. Sitecore:如何自定义媒体网址
- 20. Sitecore的媒体项目错误
- 21. Sitecore内部链接到媒体文件?
- 22. Sitecore媒体src路径错误?
- 23. Sitecore 8:缓存媒体图像
- 24. 链接到Sitecore媒体项目
- 25. 在Sitecore中设置媒体网址
- 26. 用azure托管silverlight媒体
- 27. Sitecore:如何通过URL获取媒体库项目?
- 28. Sitecore中的媒体库已从生产实例中删除
- 29. 图像在sitecore媒体库中不可见
- 30. 禁用Sitecore媒体库搜索空结果后
嗨Kam,其实你是对的,现在你可以配置CDN指向/ CDN文件夹,并在CD和媒体上使用重写规则。MediaLinkServerUrl这是一个简单的生活......唯一的问题可能是更新中间库项目并使cdn上的缓存版本无效,我想简单的选择应该是对媒体项目进行一些查询操作或者只是重命名它...... – Stelio 2015-03-05 10:33:07
是 - '“计算机科学中只有两件难事:缓存失效和命名事项”:)您可以将媒体项目的修改日期附加为查询字符串参数,只需覆盖MediaManager始终包含此项即可。 – jammykam 2015-03-05 11:17:11