Версионное изображение Sitecore не загружается - PullRequest
3 голосов
/ 08 декабря 2011

Я использую Sitecore 6.5 и у меня есть шаблон данных с полем изображения и элемент, основанный на этом шаблоне.На сайте было два языка.

Если я использую версионное изображение (один элемент в библиотеке мультимедиа с версиями En и Fr) в версиях элемента En и Fr, то опубликую сайт и переключаю язык всайт, используя строку запроса, sc_lang = en или fr, все меняется на странице, кроме изображения.

Но если я использую два разных изображения (два элемента в библиотеке мультимедиа), тогда при переключении между ними загружается правильное изображениеязыки.

Есть идеи, почему это происходит?

Спасибо T

Обновление

Я попытался использовать опцию общего доступа и чтоне работалЯ также заметил, что если я просто добавлю параметр запроса и нажму клавишу ввода, страница изменится на правильный язык, но изображение не появится, пока я не нажму кнопку обновления.Кажется, проблема кеширования, но почему это происходит только с версионными изображениями.

Ответы [ 2 ]

3 голосов
/ 08 декабря 2011

Кажется, есть ошибка с элементами управления <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);
1 голос
/ 12 декабря 2011

Поддержка 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"/>

Это сработало для меня как на сайте публикации, так и в редакторе страниц.

...