Ich arbeite an einem Modul in Drupal 8, das zeitkritische Daten von einer externen REST-API abruft. Die Daten werden verarbeitet und an einen Block weitergeleitet. Die endgültigen Daten werden wie folgt an eine Twig-Vorlage gesendet:
...
public function build() {
$build = [];
$build['ticker_block'] = [
'#theme' => 'module_theme',
'#data' => $myService->data(),
];
return $build;
}
Dies funktioniert nicht in der Produktionsumgebung, in der der Cache aktiviert ist und die gerenderten Daten als veraltet angezeigt werden. Wie deaktiviere ich den Cache nur für mein Modul und muss ich ihn sowohl für die Twig-Vorlage als auch für das Block-Plugin ausführen?
So beenden Sie das Zwischenspeichern eines bestimmten Blocks:
quelle
Deaktivieren Sie den Cache für eine bestimmte Seite / einen bestimmten Inhaltstyp / einen bestimmten Controller
Die Routenoption 'no_cache' wurde hinzugefügt, um die Antworten einer Route als nicht zwischenspeicherbar zu markieren
quelle
So verhindern Sie das Zwischenspeichern eines bestimmten Blocks:
Fügen Sie den folgenden Code in die Datei theme_name.theme ein
quelle