Drupal 8: отключение кэша блоков конкретного представления

Drupal 8: отключение кэша блоков конкретного представления

30.06.2017 01:17:49 Просмотров 56 Источник

Я хотел знать, как отключить кэширование блоков для всех блоков, которые были созданы представлением. Я хотел бы сделать это из моей темы, если это возможно. Мое предварительное исследование показало, что с помощью 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

Pagri

30.06.2017 05:12:32

Я обнаружил, что могу отключить кэширование блоков представления в пользовательском интерфейсе представлений. Он находится в стадии разработки. Выключив его там исправил мою проблему

gangadhara

03.10.2019 07:15:50

В Drupal 8 для того, чтобы отключить кэш для конкретного вида

ваш вид > дополнительно > > кэширование > > > нет

Закрыть X