Il est important de comprendre pourquoi vous ne souhaitez pas mettre en cache le bloc. Si cela est destiné à afficher des informations spécifiques à la session, vous devriez
Une option non recommandée pourrait également être un contrôleur personnalisé qui renvoie certaines données via ajax-call (avec la méthode POST afin qu'elles ne soient pas mises en cache).
(!) cacheable = "false" ne doit pas être utilisé. Ici suivra, POURQUOI non:
Un bloc avec cacheable = "false" rendra la page entière non mise en cache. Il n'est pas utilisé pour la perforation du cache. La page suivante le dit également ( pour créer une page non mise en cache , marquez tout bloc de cette page comme non mise en cache dans la mise en page en utilisant cacheable = "false" ):
Ce que cela fait, c'est que les modules Varnish / Fastly enverront en raison de cette valeur d'attribut toujours des en-têtes non cachables.
Lorsque nous activons cachable = "false" et lors de l'utilisation de Varnish / Fastly, les en-têtes suivants du navigateur sont envoyés:
X-Magento-Cache-Debug:MISS
X-Magento-Cache-Control:max-age=0, must-revalidate, no-cache, no-store
Age: 0
Pour cela, vous pouvez déboguer le code de mise en cache des pages de Magento sur
vendor/magento/module-page-cache/Model/Layout/LayoutPlugin.php::afterGenerateXml
vendor/magento/module-page-cache/Model/Layout/LayoutPlugin.php::afterGetOutput
où le premier doit envoyer un Cache-Control public avec TTL et le second doit envoyer des X-Magento-Tags pour Varnish / Fastly.
Les deux utilisent la vérification isCacheable () où cela renvoie toujours FALSE en raison de la vérification suivante (vérifiez si dans la disposition actuelle il y a des attributs: cacheable = "false"):
$cacheableXml = !(bool)count($this->getXml()->xpath('//' . Element::TYPE_BLOCK . '[@cacheable="false"]'));
Lorsque nous supprimons cacheable = "false", nous commençons à obtenir les vérifications isCacheable () comme VRAI et également à obtenir correctement les en-têtes sur les pages de démarrage / catégorie / produit.
X-Magento-Cache-Control:max-age=86400, public, s-maxage=86400
X-Magento-Cache-Debug:HIT
X-Magento-Cache-Hits:1
Age:32