Значение кэширования Glass Mapper?

Использование Sitecore 8.0u3 и Glass-Mapper 3.5.3

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

Я пытаюсь написать вводный текст для формы следующим образом:

<div class="intro">@Editable(m => Model.ContextItem.Intro_Text)</div>
<div>RAW: @Model.ContextItem.Intro_Text</div>

Обратите внимание, что вторая строка была добавлена ​​мной для устранения неполадок.

В данном случае результатом этого является:

Заполните форму, чтобы связаться с нами.

RAW: Заполните форму, чтобы связаться с нами.

Обновляю текст в Sitecore, убираю лишние 's', сохраняю и публикую. Обновляю страницу и вижу это:

Заполните форму, чтобы связаться с нами.

RAW: Заполните форму, чтобы связаться с нами.

Таким образом, часть, которая не использует Editable, работает нормально, но версия Editable продолжает показывать «старое» значение.

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

Любые идеи о других местах для поиска источника проблемы?


person Craig Taylor    schedule 05.10.2015    source источник


Ответы (3)


Я думаю, вам нужно использовать синтаксис <div class="intro">@Editable(m => m.ContextItem.Intro_Text)</div>, а не <div class="intro">@Editable(m => Model.ContextItem.Intro_Text)</div>

person Wesley Lomax    schedule 06.10.2015
comment
Да, синтаксис работает, он просто не показывает последние значения из Sitecore, если вы не перезапустите пул приложений. Это был мой опыт использования Sitecore 8 и Glass 4. - person Wesley Lomax; 06.10.2015
comment
Да, спойлер на sitecore slack выглядит так, будто лямбада кэширована, и ребята из стекла рекомендуют использовать предложенный вами синтаксис. - person Anicho; 06.10.2015
comment
Ницца! Изменен синтаксис, чтобы быть последовательным. (м/м против м/модели) Теперь отлично работает! Возможно, это может работать так же, как предложил @jwsadler при использовании Model/Model. - person Craig Taylor; 06.10.2015
comment
Большой! Потребовалось некоторое время, чтобы выяснить проблему рендеринга! - person Steven; 21.09.2019

Я столкнулся с этой проблемой некоторое время назад. Измените синтаксис на @Editable(Model => Model.ContextItem.Intro_Text)

person jwsadler    schedule 06.10.2015

@Editable() просматривает HtmlString и, скорее всего, отображает его из HtmlCache. Я также видел эту проблему и во время процесса сборки, и мне приходится повторно публиковать все, чтобы очистить кэши, особенно когда я буду вносить изменения в шаблон данных.

Вы можете попробовать несколько вещей в своей среде разработки и сузить проблему.

  1. После внесения изменений очистите кеш HTML из /sitecore/admin/cache.aspx и снова проверьте страницу.

  2. Попробуйте выполнить инкрементную публикацию на сайте, так как это очистит кеш HTML.

  3. Попробуйте сделать перепубликацию сайта.

Кроме того, отключите кеш вывода для веб-сайта в разделе

person Naveed Ahmad    schedule 06.10.2015