Частичное кэширование зависимостей в Kentico - PullRequest
1 голос
/ 06 сентября 2011

Как использовать кэширование частичных зависимостей в Kentico CMS?

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

  • / Home (с ретранслятором)
  • / News
    • Item 1 (таким образом, путь= / Новости / Элемент-1)
    • Элемент 2 (т. Е. Путь = / Новости / Элемент-2)

На главной странице есть веб-часть Repeaterв котором перечислены самые последние новости.У него есть путь "/%" и фильтр типов документов, установленный на "CMS.News";очевидно, также значение «Частичное кэширование минут»> 0. Пользовательского кода нет;просто веб-части портала и стандартные типы документов.

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

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

Из того, что я мог сказать в этом посте, они сказали, что используют node|%CurrentSite.SiteName%}|/News|childnodes, который, кажется, имеет некоторыемагические ключевые слова, такие как node и некоторые макроэлементы, такие как {%CurrentSite.SiteName%}.(Я знаю, что все элементы должны быть в нижнем регистре, поэтому я уже знаю, что их советы не совсем последовательны. Вместо этого они должны быть, по крайней мере, node|%CurrentSite.SiteName%}|/news|childnodes. И нужно ли вводить строчные буквы в макросах?) Прежде всего, чтострока не работает для меня - она ​​все еще кэширует репитер главной страницы главной новости (да, полное кэширование страниц было отключено);во-вторых, как мне построить такую ​​строку и отладить, какой она должна быть?Связанный пост имеет сетку примеров, но он сбивает с толку (для меня) и не является исчерпывающим.

Может ли кто-нибудь предоставить хороший пример или лучшую ссылку на блог, где это объясняется по-другому?

РЕДАКТИРОВАТЬ: Я понял, что задал этот вопрос довольно широко.Как насчет того, чтобы сузить его, чтобы просто ответить на вопрос: как определить, какие настройки следует использовать для кэширования ретранслятора с зависимостью от изменений в другой папке?

Ответы [ 2 ]

1 голос
/ 12 сентября 2011

Волшебные слова, которые вы упомянули в своем посте, в основном являются ключевыми словами для определенных объектов. Их можно увидеть в описании Параметры кэширования - там перечислены "узлы", "узлы", "узлы" как наиболее распространенные для работы с узлами. Но ниже описан синтаксис для любого объекта, где вы будете использовать имя класса этого объекта.

Что касается поста в блоге технического директора Kentico и его ответов в комментариях, похоже, он пропустил или неправильно понял ваш вопрос. Вы говорите о частичном кэшировании, а он приводил вам примеры «нормальных» настроек кэширования. Макросы в сенсорных клавишах разрешаются (нижний или верхний регистр не имеет значения) во всех других настройках кэширования, но не в частичном кэшировании. Эта функция будет доступна в следующей версии 6.0.

Итак, сейчас вам нужно жестко закодировать имя сайта в настройках кэша сенсорных клавиш.

1 голос
/ 07 сентября 2011

Я включил отладку кеша и посмотрел, какие имена кеша генерируются.Я видел, что для меня установлено значение ...

node|{%CurrentSite.SiteName%}|/test-section/|childnodes

... что явно неверно и никогда не сработает!

Похоже, макросы не разрешаютсяв свойстве зависимостей частичного кэша.Поэтому вы не можете использовать "{% CurrentSite.SiteName%}" вместо имени сайта.Вот пример частичной зависимости кеша, которая работала для меня ...

node|mytestsite|/test-section/|childnodes

Используя вышеупомянутую частичную зависимость кеша, кеш обновлялся, как только я удалял субпункт.

...