首页 > 解决方案 > 如何在 sitecore RSS 提要中获取媒体链接

问题描述

我正在为 sitecore 中的媒体项目设置提要,并按照设置指南进行操作,一切正常。但是,提要中的链接标签会生成内容树中媒体项的绝对路径,如下所示

在此处输入图像描述

我们想要的是服务器上图像的 URL,例如http://ecms-site1.intlsos.com/-/media/corporate/..../incident-occurs.mp3

我从 PublicFeed 类继承以在 rss 提要中添加额外的属性,但需要帮助更改链接属性的行为以返回媒体 url。

谢谢

标签: c#sitecore8

解决方案


对于媒体项目,您应该使用 Sitecore MediaManager,而不是像普通页面那样使用 LinkManager,并指定 MediaUrlOptions 来控制媒体资产的绝对和相对 URL。下面的代码为 Sitecore 媒体项定义了一个扩展,以便为其生成绝对 URL:

using Sitecore.Resources.Media;

public static string AbsoluteMediaItemUrl(this Sitecore.Data.Items.MediaItem item)
            {
                MediaUrlOptions mediaUrlOptions = new MediaUrlOptions
                {
                    AlwaysIncludeServerUrl = true,
                    AbsolutePath = true
                };
                return MediaManager.GetMediaUrl(item, mediaUrlOptions);
            }

为了覆盖 Sitecore 中的标准 RSS 提要功能,您必须创建从Sitecore.Syndication.PublicFeed继承的自定义类并覆盖SyndicationItem RenderItem(Item item)方法。接下来,您需要将新创建的类映射到 Sitecore 中的 RSS Feed 项,以指定要引用的自定义类,而不是标准的 PublicFeed 类。


推荐阅读