Добрый день
Сделал сайт с региональными алиасами (msk.mysite.ru, spb.mysite.ru, omsk.mysite.ru и т д )
Т е содержимое сайта везде одно и то же, отличаются только некоторые параметры (адрес, телефон, карта).
Возникла проблема с кэшированием twig, т к он кэшируется для всего сервера, независимо от адреса сайта.
Например, зашли на msk.mysite.ru, там, как и ожидается, написано "Оказываем услуги в Москве", зашли на omsk.mysite.ru, а там снова "Оказываем услуги в Москве". Почистил кэш, в Омске, как и требуется, "Оказываем услуги в Омске" отображается, но теперь на московском домене "Оказываем услуги в Омске" вылезает.
В админке "Browser and proxy cache maximum age" стоит "не кэшировать".
Что еще можно сделать и как лучше поступить в этой ситуации?
Комментарии
Это больше похоже на кэш рендера, чем на кэш твига. Скорее всего где-то неверный набор тэгов кэширования. Вот эта ваша надпись "Оказываем услуги там-то" чем вообще выводится?
Примерно так
<?php
function theme_preprocess_page {
//...
//...
$variables["city"] = $city;
}
?>
Ну а в шаблоне Twig
Это точно кэш рендера. Как у вас вычисляется переменная $city? Выводится ли это на внутренних страницах? Если сбросить весь кэш, и зайти на главную страницу одного города и внутреннюю другого, то там город один и тот же?
Внутренних странниц нет, это лэндинг. Но могу создать для теста.
Регионы у меня термины таксономии с полями
<?php
$terms = \Drupal::entityManager()->getStorage('taxonomy_term')->loadByProperties($properties);
$term = reset($terms);
$city = $term->get('field_city')->getValue();
?>
Получаю термин таксономии,
В препроцессе в $variables есть переменная $variables['#cache']? Что там в ней?
Вообще никак не фигурирует в методе.
А в $viables['page'] есть #cache?
Где-то нужно добавить
<?php
'#cache' => ['contexts' => ['url']]
?>
Спасибо!!!
Добавил
$variables['#cache']['contexts'][] = 'url';
заработало