我使用富文本编辑器插入了媒体项目,链接如下所示
<img alt="" src="media/8AC956DF5182489F9F8D8C98CC06BE6E.ashx" width="560" height="193" />
图像在sitecore页面编辑/预览模式下呈现良好。但它不会在实际网站上呈现。当我检查它时,在浏览器中看起来像下面
<img alt="" src="media/8AC956DF5182489F9F8D8C98CC06BE6E.ashx" width="560" height="193">
请帮忙。
答案 0 :(得分:1)
问题是Media.MediaLinkPrefix值&#34;媒体&#34;
使用
<setting name="Media.MediaLinkPrefix" value=""/>
(默认值)
&#34;那是〜/ media&#34;或&#34; - / media取决于Sitecore版本&#34;
或使用
<setting name="Media.MediaLinkPrefix" value="-/media" />
另请参阅https://kb.sitecore.net/articles/723979以了解8.1以下的Sitecore版本
答案 1 :(得分:0)
你可以尝试这样的事情:
<img alt="" src="~/media/8AC956DF5182489F9F8D8C98CC06BE6E.ashx" width="560" height="193" />
查看src属性开头的更改。
答案 2 :(得分:0)
之前我遇到过同样的问题,但之后我发现这是我的错误(不是Sitecore问题,因为你能够在页面编辑器中正确地看到图像),因为我将富文本字段的HTML内容直接发送到frontend ,肯定在这里它不会工作,因为我没有调用URL,这将是图像的基本根或任何媒体src属性(因为它包括相对URL),所以我刚刚在渲染时更改了我的代码前端替换所有相对URL是绝对的,如下所示:
WebUtility.HtmlDecode(item.Fields["field_name"].Value.Replace("-/media/", Request.Url.Scheme + "://" + Request.Url.Authority + '/' + "~/media/"));
但是在您的情况下,如果您的src看起来像src="media/8AC956DF5182489F9F8D8C98CC06BE6E.ashx"
,那么您可以使用代码:
WebUtility.HtmlDecode(item.Fields["field_name"].Value.Replace("media/", Request.Url.Scheme + "://" + Request.Url.Authority + '/' + "~/media/"));
注意: Sitecore Rich文本编辑器已经在渲染已解码的HTML,而我正在使用WebUtility.HtmlDecode
进行双重检查。
答案 3 :(得分:0)
问题可能在于您如何在前端渲染richtext编辑器字段。无论出于何种原因,它似乎都会跳过sitecore中的LinkProvider。 LinkProvider将您在FrontEnd中看到的内容转换为可用且友好的链接。
它在页面编辑器中工作,因为它的设计是使用该格式的链接。
检查您是否没有直接访问RichText值并且您正在使用渲染管道。