Я работаю над модулем в Drupal 8, который получает чувствительные ко времени данные из внешнего REST API. Данные обрабатываются и отправляются в блок. Окончательные данные отправляются в шаблон Twig следующим образом:
...
public function build() {
$build = [];
$build['ticker_block'] = [
'#theme' => 'module_theme',
'#data' => $myService->data(),
];
return $build;
}
Это не работает в производственной среде, в которой включен кэш, и отображаемые данные отображаются как устаревшие. Как отключить кеш только для моего модуля, и нужно ли это делать как для шаблона Twig, так и для блочного плагина?
Чтобы остановить кэширование определенного блока, используйте следующую функцию:
источник
Отключить кеш для конкретной страницы / типа контента / контроллера
Добавлена опция маршрута no_cache, чтобы пометить ответы маршрута как не кэшируемые
источник
Чтобы предотвратить кеширование определенного блока:
добавьте приведенный ниже код в файл theme_name.theme
источник
Чтобы отключить кэш для типа блока, предварительно обработайте блок этого типа и установите для max_age значение 0.
источник