0

我们有一个带有富文本编辑器的文档类型,并将图像放入文本中。当我们查看 Umbraco 下的内容时,图像显示出来并且看起来很好。

当 Umbraco 保存内容并省略 src 部分时,我想确保当内容显示在不同的服务器/网站/域上时它始终具有正确的域名......所以它不会在数据库中或在索引。

问题是,当我们通过ContentServiceExamine图像链接获取内容时,它只有data-udi

<img style="width: 479px; height: 288px;" src="?width=479&amp;height=288&amp;mode=max" alt="" data-udi="umb://media/0fc389ff96e949169014c0faf05220d0" />

而不是这个,就像在 Umbraco 下:

<img style="width: 479px; height: 288px;" src="https://www.example.com/media/5gengd5j/image1.png?width=479&amp;height=288&amp;mode=max" alt="" data-udi="umb://media/0fc389ff96e949169014c0faf05220d0" />

我们应该怎么做才能确保生成图像链接,就像它们在后台完成一样?

有没有一种方法可以调用整个内容来填充基于 GuidUdi 的 src 字段?

IContentService cs = Services.ContentService;
IContent content = cs.GetById(ID);
string mainString = content.Properties["main"].GetValue()
???

(我们使用的是 Umbraco 8.2.1)

4

1 回答 1

1

在挖掘了 Umbraco 的源代码后,我在这里找到了解决方案。

TemplateUtilities具有根据 data-udi 插入指向各种对象的链接的方法:

string mainString = content.Properties["main"].GetValue()
mainString = TemplateUtilities.ParseInternalLinks(mainString, Current.UmbracoContext.UrlProvider);
mainString = TemplateUtilities.ResolveUrlsFromTextString(mainString);
mainString = TemplateUtilities.ResolveMediaFromTextString(mainString);
于 2020-03-19T13:41:22.887 回答