c# - 如何在 sitecore RSS 提要中获取媒体链接
问题描述
我正在为 sitecore 中的媒体项目设置提要,并按照设置指南进行操作,一切正常。但是,提要中的链接标签会生成内容树中媒体项的绝对路径,如下所示
我们想要的是服务器上图像的 URL,例如http://ecms-site1.intlsos.com/-/media/corporate/..../incident-occurs.mp3
我从 PublicFeed 类继承以在 rss 提要中添加额外的属性,但需要帮助更改链接属性的行为以返回媒体 url。
谢谢
解决方案
对于媒体项目,您应该使用 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 类。
推荐阅读
- kubernetes - kong 限速插件对请求没有影响
- javascript - 如何使用 Javascript 中的 fetch API 将文件上传到 Laravel 控制器?
- laravel - 如何将nestedSortable.js 相关数组保存到数据库中?
- angular - 无法通过一个 ngFor 显示两个可观察数组:显示相同的值
- jekyll - 是否可以只缓存一个 URL
- mysql - 不支持 RSA 加密 - 使用 django mysql 和 docker 缓存_sha2_password
- mql4 - MQL4 - 未实现订单利润 - 手动计算,转换略有偏差
- reactjs - 未捕获的错误:对象作为 React 子对象无效(找到:带有键 {product} 的对象)
- java - 如何调用 REST API 动词 POST,输入是 UUID 列表?
- docker - Docker Compose:在同一个 Repository 中为开发和部署设置两个 compose 文件