【问题标题】:Sitecore versioned image not loadingSitecore 版本化图像未加载
【发布时间】:2011-12-07 20:24:35
【问题描述】:

我正在运行 Sitecore 6.5,并且有一个数据模板,其中包含一个图像字段和一个基于该模板的项目。该网站有两种语言。

如果我在项目的 En 和 Fr 版本中使用版本化图像(媒体库中具有 En 和 Fr 版本的项目)然后发布站点并使用查询字符串切换站点中的语言,sc_lang=en 或fr,页面中的所有内容都发生了变化,除了图像。

但如果我使用两个不同的图像(媒体库中的两个项目),那么在切换语言时会加载正确的图像。

知道为什么会这样吗?

谢谢 T

更新

我尝试使用共享选项,但没有奏效。我还注意到,如果我只是添加查询参数并按回车,页面会更改为正确的语言,但图像不会,直到我点击刷新按钮。这似乎是一个缓存问题,但为什么它只发生在版本化图像中。

【问题讨论】:

  • 您的数据模板上的图片字段是否设置为“共享”?
  • 我尝试了共享选项,但也没有用
  • 您是否使用
  • 是的,我也试过 FieldRenderer。

标签: sitecore sitecore6 sitecore-media-library


【解决方案1】:

<sc:image />FieldRenderer 控件似乎存在错误,因为生成的 URL 在查询字符串中没有语言。

你可以试试这样的:

<asp:Literal ID="image" runat="server"><img src="{0}" /></asp:Literal>

Sitecore.Resources.Media.MediaUrlOptions options = new Sitecore.Resources.Media.MediaUrlOptions
{
    Language = Sitecore.Context.Language
};
Sitecore.Data.Fields.ImageField imgField = (Sitecore.Data.Fields.ImageField)Sitecore.Context.Item.Fields["Image"];
string url = Sitecore.Resources.Media.MediaManager.GetMediaUrl(imgField.MediaItem, options);
image.Text = string.Format(image.Text, url);

【讨论】:

  • 感谢 Sean,该解决方案适用于显示图像,但不再像 SC 图像或字段渲染器那样支持页面编辑器。我搜索了SDN并没有遇到这个错误,它是否在某处引用?可以提供一下链接吗?
  • 我认为它是刚刚被发现的 ;) 您可能想将此报告给 Sitecore 支持,看看他们怎么说。
  • @ErgonomicDeveloper,我鼓励您就此联系 Sitecore 支持。您的报告将有助于使 Sitecore CMS 变得更好! :-)
  • 已将问题提交给 Sitecore 的支持,我会在从他们那里获得更多信息后发布更新。
【解决方案2】:

Sitecore 支持确认这是一个错误,这是他们的临时解决方法:

  1. Sitecore.Support.320556.dll复制到website\bin文件夹,该dll还没有上SDN,http://tareknasser.com/projects/sitecore/Sitecore.Support.320556.dll

  2. 在 web.config 文件中找到并注释掉以下节点:

<processor type="Sitecore.Pipelines.RenderField.GetImageFieldValue, Sitecore.Kernel"/>

并在评论后的下方添加以下内容:

<processor type="Sitecore.Support.Pipelines.RenderField.GetImageFieldValue, Sitecore.Support.320556"/>

这在发布网站和页面编辑器中都对我有用。

【讨论】:

  • 更新了 dll,因为我发现了另一个错误,Sitecore 支持提供了另一个 dll 来修复它。
猜你喜欢
  • 2012-01-25
  • 2019-11-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-03-03
  • 1970-01-01
  • 2012-09-20
相关资源
最近更新 更多