如何在sitecore rss feed中获取媒体链接

问题描述 投票:0回答:1

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

enter image description here

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

我继承自PublicFeed类以在rss feed中添加额外属性,但需要帮助更改link属性的行为以返回媒体URL。

谢谢

c# sitecore8
1个回答
1
投票

对于媒体项目,您应使用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类。

© www.soinside.com 2019 - 2024. All rights reserved.