Je travaille sur un module dans Drupal 8 qui récupère les données sensibles au temps à partir d'une API REST externe. Les données sont traitées et transmises à un bloc. Les données finales sont envoyées à un modèle Twig comme ceci:
...
public function build() {
$build = [];
$build['ticker_block'] = [
'#theme' => 'module_theme',
'#data' => $myService->data(),
];
return $build;
}
Cela ne fonctionne pas sur l'environnement de production où le cache est activé et les données rendues apparaissent comme périmées. Comment désactiver le cache pour mon module uniquement, et dois-je le faire pour le modèle Twig et le plugin Block?
Pour arrêter la mise en cache d'un bloc spécifique, utilisez la fonction suivante:
la source
Désactiver le cache pour une page / un type de contenu / un contrôleur spécifique
Ajout de l'option de route «no_cache» pour marquer les réponses d'un itinéraire comme non pouvant être mises en cache
la source
Pour empêcher la mise en cache d'un bloc particulier:
ajoutez le code ci-dessous dans le fichier theme_name.theme
la source
Pour désactiver le cache pour un type de bloc, prétraitez le bloc de ce type et définissez max_age sur 0.
la source