Pracuję nad modułem w Drupal 8, który pobiera dane wrażliwe na czas z zewnętrznego interfejsu API REST. Dane są przetwarzane i przekazywane do bloku. Ostateczne dane są wysyłane do szablonu Twig, takiego jak:
...
public function build() {
$build = [];
$build['ticker_block'] = [
'#theme' => 'module_theme',
'#data' => $myService->data(),
];
return $build;
}
Nie działa to w środowisku produkcyjnym, w którym włączona jest pamięć podręczna, a renderowane dane są przestarzałe. Jak wyłączyć pamięć podręczną tylko dla mojego modułu i czy muszę to zrobić zarówno dla szablonu Twig, jak i wtyczki Block?
Aby zatrzymać buforowanie określonego bloku, użyj następującej funkcji:
źródło
Wyłącz pamięć podręczną dla określonej strony / typu zawartości / kontrolera
Dodano opcję trasy „no_cache”, aby oznaczyć odpowiedzi trasy jako nieusuwalne
źródło
Aby zapobiec buforowaniu określonego bloku:
dodaj poniższy kod w pliku theme_name.theme
źródło
Aby wyłączyć pamięć podręczną dla typu bloku, należy wstępnie przetworzyć blok tego typu i ustawić max_age na 0.
źródło