未在Umbraco内容中填写图像src

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

我们具有带有Richtext编辑器的文档类型,并将图像放入文本中。当我们查看Umbraco下的内容时,图像显示出来,看起来还不错。

当Umbraco保存内容并省略src部分时,我想确保当内容显示在不同的服务器/网站/域上时,它始终具有正确的域名...因此,将它放在dabase中并不容易或在索引中。

问题是,当我们通过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)

c# umbraco umbraco8
1个回答
0
投票

深入研究Umbraco的源代码后,我找到了解决方案here

TemplateUtilities具有基于数据-udi插入​​到各种对象的链接的方法:

string mainString = content.Properties["main"].GetValue()
mainString = TemplateUtilities.ParseInternalLinks(mainString, Current.UmbracoContext.UrlProvider);
mainString = TemplateUtilities.ResolveUrlsFromTextString(mainString);
mainString = TemplateUtilities.ResolveMediaFromTextString(mainString);
© www.soinside.com 2019 - 2024. All rights reserved.