Drupal 8: отключение кэша блоков конкретного представления
Я хотел знать, как отключить кэширование блоков для всех блоков, которые были созданы представлением. Я хотел бы сделать это из моей темы, если это возможно. Мое предварительное исследование показало, что с помощью hook_block_view_BASE_BLOCK_ID_alter () можно было бы достичь этого.
Представление, для которого я хотел бы отключить кэширование, имеет имя машины background_image . Моя тема называется my_theme. Я попробовал это в my_theme.тема но это не сработало:
/*
* Implements hook_block_view_BASE_BLOCK_ID_alter().
*/
function my_theme_block_view_background_image_alter(array &$build, \Drupal\Core\Block\BlockPluginInterface $block) {
$build['#cache']['max-age'] = 0;
}
Я также попытался использовать обратный вызов:
/*
* Implements hook_block_view_BASE_BLOCK_ID_alter().
*/
function my_theme_block_view_background_image_alter(array &$build, BlockPluginInterface $block) {
$build['#pre_render'][] = '_background_image_block_pre_render';
}
/**
* Pre-render callback
*/
function _background_image_block_pre_render(array $build) {
$build = array(
'#cache' => array('max-age' => 0),
);
return $build;
}
Заранее спасибо.
У вопроса есть решение - Посмотреть?
Ответы - Drupal 8: отключение кэша блоков конкретного представления / Drupal 8: Turn off a specific view's block cache


03.10.2019 07:15:50
В Drupal 8 для того, чтобы отключить кэш для конкретного вида
ваш вид > дополнительно > > кэширование > > > нет
Помочь в развитии проекта: