Как я могу использовать несколько кешей одной страницы с разными аргументами запроса?

Используя Drupal 8, у меня есть страница (узел), которая имеет две разные визуализации в зависимости от переданного в параметре запроса. Это должно поддерживать регулярное представление страницы в браузере, а также встроенную версию страницы без заголовка, нижнего колонтитула и т. Д. Пример:

https://www.domain.com/my-page
https://www.domain.com/my-page?version=embedded_view

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

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

6 голосов | спросил codesmith 4 MaramSat, 04 Mar 2017 07:45:40 +03002017-03-04T07:45:40+03:0007 2017, 07:45:40

1 ответ


8

Вам нужно добавить кэш-контекст для параметра запроса version на страницу:

function THEME_preprocess_page(&$variables) {

  $variables['#cache']['contexts'][] = 'url.query_args:version';

}

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

ответил 4k4 4 MarpmSat, 04 Mar 2017 14:57:52 +03002017-03-04T14:57:52+03:0002 2017, 14:57:52

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132