【问题标题】:Sitecore Reference media library image in an image's src attribute inside Rich Text field editorSitecore 在富文本字段编辑器中图像的 src 属性中引用媒体库图像
【发布时间】:2016-09-04 10:50:42
【问题描述】:

我使用的是 sitecore 8.1,我有一个包含“富文本”类型字段的模板,我正在基于此模板创建项目并将 HTML 内容存储在此字段中。除了包含在 HTML 内容中的图像(在 src 属性中)之外,所有 HTML 标签和一切都正常工作,我已经尝试了以下所有场景,但都失败了:

注意:以下所有场景的结果都在 sitecore CMS 的富文本编辑器中正确显示了图像,但是当尝试在移动网络视图或任何浏览器中呈现 HTML 时,HTML 看起来正确,但只是图像是空的。 而且我尝试过的只有一种方法,它有效,但没有 满足我的要求,即在 src 中提及外部 URL,例如:

src="http://i.telegraph.co.uk/multimedia/archive/03589/Wellcome_Image_Awa_3589699k.jpg"

场景:

  • 在媒体库中上传图片并使用Image Map Editor(从富文本编辑器调用)引用上传的图片,因此图片的src属性包含src="-/media/5EA5C007FFFF4688A0B7E6F58B79D2E8.ashx?h=183&w=250"之类的值 在这里,我还尝试将扩展名从 ashx 更改为原始扩展名并删除后缀参数,但没有结果。
  • 在 src 属性中明确指定媒体库中的图像 url,如 src="/-/media/Contents/Images/foobar" 并且在这里我尝试更改添加原始扩展但没有结果。
  • 使用this solution,但它破坏了我所有的媒体文件,而且在我上传新文件后,仍然无法在 HTML 网络视图或浏览器中看到图像。
  • 在 sitecore 网站目录中添加原始图像,如 \website\contents\images,并像任何普通图像引用一样通过 HTML 引用它,如 src="/contents/images/foobar.jpg"src="~/contents/images/foobar.jpg" 一样,但没有任何结果或变化。

我希望通过使用 Sitecore 的媒体库来避免最后一种情况

【问题讨论】:

  • 能否提供您在前端看到的网址
  • 我发现第一个方案(在删除后缀参数并将扩展名更改为原始方案后)是最合乎逻辑的,因为我得到 src="-/media/411F4173DF814FBAAC9E9343FBE96442.jpg"在前端,应该以根'url + /'为前缀,它应该像这样正常工作:“www.mysite.com/-/media/411F4173DF814FBAAC9E9343FBE96442.jpg”但我不知道如何实现它和不想在内容编辑器中提及根 url(应该在运行时解决)。
  • 如果您使用“插入 Sitecore Media”选项,它应该插入链接(就像在第一个场景中一样),然后图像链接应该在正常模式下正确展开。如果您的配置没有问题,或者它可能已被您的实现覆盖。
  • @jammykam 谢谢,但我仍然得到相同的结果,它应该在默认配置下正常工作(因为我从未更改过它),顺便说一下我已经更新了我的问题以显示我如何请求这个 HTML(可能是我缺少的东西)
  • 恐怕还是一样的答案。我会向 Sitecore 支持提出请求,他们将能够更好地处理您查看配置和日志文件的问题。

标签: sitecore sitecore8


【解决方案1】:

不使用ashx扩展,可以直接在富文本中使用图片的sitecore路径,如下图:

src="~/media/path/to/image/logo.jpg"

然后,正如您在上面提供的,您从富文本中检索值如下:

var richTextValue = item.Fields["Body"].Value;

谢谢

【讨论】:

  • 这个问题是如果图像被移动或重命名,那么你最终会得到一个损坏的图像链接。我使用默认的 guid 格式,这也是为您处理的。您还会断开链接,并且在删除图像时不会收到使用警告。我认为这是不好的做法。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多