我想知道如何为视图创建的所有块关闭块缓存。如果可能的话,我想从我的主题中做到这一点。我的初步研究表明,使用hook_block_view_BASE_BLOCK_ID_alter()可能能够实现这一目标。
我想关闭缓存的视图的机器名称为 background_image 。我的主题名为 my_theme 。我在my_theme.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;
}
提前致谢。
答案 0 :(得分:2)
我发现我能够在Views UI中关闭视图的块缓存。它属于高级版。把它关掉那里解决了我的问题
答案 1 :(得分:0)
在Drupal 8中,为特定视图禁用缓存
您的视图>高级>缓存>无