2017-06-29 4 views
0

Ich wollte wissen, wie Sie das Block-Caching für alle Blöcke deaktivieren, die von einer Ansicht erstellt wurden. Ich würde das gerne aus meinem Thema machen, wenn das möglich ist. Meine vorläufige Forschung vorgeschlagen, dass die Verwendung von hook_block_view_BASE_BLOCK_ID_alter() könnte dies erreichen.Drupal 8: Deaktivieren Sie den Block-Cache einer bestimmten Ansicht

Die Ansicht, für die ich das Caching deaktivieren möchte, hat einen Computernamen background_image. Mein Thema heißt my_theme. Ich habe versucht, dies in my_theme.theme aber es hat nicht funktioniert:

/* 
* 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; 
} 

ich auch einen Rückruf zu verwenden versucht:

/* 
* 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; 
} 

Vielen Dank im Voraus.

Antwort

1

Ich habe festgestellt, dass ich das Blockieren von Zwischenspeichern der Ansicht in der Benutzeroberfläche von Ansichten deaktivieren kann. Es ist unter Erweitert. Das Ausschalten hat mein Problem gelöst

Verwandte Themen