encodeNameReplacements не работает в редакторе страниц

Код конфигурации sitecore ниже хорошо работает в обычном режиме.

    <encodeNameReplacements>
      <replace mode="on" find=" " replaceWith="-" />
    </encodeNameReplacements>

В режиме редактора страницы (пробелы) " " или не заменяется на "-".

В режиме редактора страниц: если я пытаюсь удалить изображение и вставить новое; изображение не отображается, пока я не сохраню страницу, потому что (пробелы) " " или не заменены на "-".

Я что-то упустил, любые идеи будут оценены.

2 ответа

Решение

У меня была проблема с encodeNameReplacements испортить пути СМИ, пока я не нашел эту статью.

После внедрения этого кода в нашем проекте dash заменит %20 и медиа-изображения будут по-прежнему визуализировать.

Sitecore 7.2 Обновление Media Library Gotcha

http://getfishtank.ca/blog/sitecore-7-2-upgrade-encoding-media-library-item-names

При обновлении клиента до Sitecore 7.2 этот раздел заметок о выпуске заставил нас задуматься:

Медиа API

При отображении медиа-URL система не использовала конфигурацию в encodeNameReplacements раздел для замены специальных символов в URL.

Это было исправлено, так что медиа-URL также используют encodeNameReplacements конфигурации. (323105, 314977)

Резюме:

URL библиотеки мультимедиа теперь используют encodeNameReplacements конфигурации.

Если кто-нибудь столкнется с этой проблемой; Ищите любой пользовательский медиа-код, написанный на вашем сайте. Я получил следующий пользовательский код, вызывающий проблему:

 public class MediaProvider : Sitecore.Resources.Media.MediaProvider 
        {
            public override string GetMediaUrl(Sitecore.Data.Items.MediaItem item, Sitecore.Resources.Media.MediaUrlOptions options)
            {
                string url = base.GetMediaUrl(item, options);

                if (!(Sitecore.Context.PageMode.IsNormal && options.UseItemPath))
                {
                    return url;
                }
            }
        }

Работает при изменении на

public class MediaProvider : Sitecore.Resources.Media.MediaProvider 
    {
        public override string GetMediaUrl(Sitecore.Data.Items.MediaItem item, Sitecore.Resources.Media.MediaUrlOptions options)
        {
            string url = base.GetMediaUrl(item, options);

            if (options.UseItemPath)
            {
                return url;
            }
        }
    }
Другие вопросы по тегам