plone.app.кэширование только для главной страницы

#caching #plone

#кэширование #plone

Вопрос:

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

Какой был бы хороший подход к проблеме «кэшировать только по определенному пути» с plone.app.caching?

Ответ №1:

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

ZCML для определения нового набора правил и связывания его с видом домашней страницы будет следующим, предполагая, что вид домашней страницы — «.homepage.Просмотр домашней страницы»:

 <configure
    xmlns="http://namespaces.zope.org/zope"
    xmlns:browser="http://namespaces.zope.org/browser"
    xmlns:cache="http://namespaces.zope.org/cache"/>

  <include package="z3c.caching" file="meta.zcml" />

  <cache:rulesetType
      name="plone.homepage"
      title="Homepage"
      description="Site homepage view"
      />

  <cache:ruleset
      for=".browser.HomepageView"
      ruleset="plone.homepage"
      />

</configure>
  

(Смотрите документацию по z3c.caching для получения дополнительной информации об используемых здесь директивах кэша.)

Если ваша домашняя страница представляет собой шаблон в оболочке CMF, а не представление, вы можете связать его с набором правил на вкладке «Операции кэширования» панели управления plone.app.caching, вместо использования директивы cache:ruleset.

Совершенно другим подходом было бы обрабатывать домашнюю страницу специально в вашей конфигурации обратного прокси.

Комментарии:

1. Мы (иногда) связывали просмотр домашней страницы с правилами кэша папок; этого правила достаточно для большинства ситуаций, когда выходные данные основаны на информации каталога, а не только на информации из текущего объекта.