È importante capire perché non si desidera bloccare la cache. Se questo ha lo scopo di mostrare alcune informazioni specifiche della sessione, allora dovresti esaminare
Un'opzione non consigliata potrebbe essere anche un controller personalizzato che restituisce alcuni dati tramite ajax-call (con il metodo POST in modo che non venga memorizzato nella cache).
(!) cacheable = "false" non deve essere utilizzato. Qui seguirà, PERCHÉ no:
Un blocco con cacheable = "false" renderà l'intera pagina non memorizzata nella cache. Non viene utilizzato per la perforazione della cache. Anche la seguente pagina dice questo ( Per creare una pagina non memorizzabile , contrassegnare qualsiasi blocco su quella pagina come non memorizzabile nel layout usando cacheable = "false" ):
Quello che fa è che i moduli Varnish / Fastly invieranno a causa di questo valore di attributo sempre intestazioni non memorizzabili nella cache.
Quando abilitiamo cachable = "false" e durante l'utilizzo di Varnish / Fastly vengono inviate le seguenti intestazioni sul lato browser:
X-Magento-Cache-Debug:MISS
X-Magento-Cache-Control:max-age=0, must-revalidate, no-cache, no-store
Age: 0
Per questo può essere eseguito il debug del codice di memorizzazione nella cache della pagina di Magento
vendor/magento/module-page-cache/Model/Layout/LayoutPlugin.php::afterGenerateXml
vendor/magento/module-page-cache/Model/Layout/LayoutPlugin.php::afterGetOutput
dove il primo dovrebbe inviare Cache-Control pubblico con TTL e il secondo dovrebbe inviare X-Magento-Tag per Varnish / Fastly.
Entrambi utilizzano isCacheable () check dove restituisce sempre FALSE a seguito del controllo (controlla se nel layout corrente sono presenti attributi: cacheable = "false"):
$cacheableXml = !(bool)count($this->getXml()->xpath('//' . Element::TYPE_BLOCK . '[@cacheable="false"]'));
Quando rimuoviamo cacheable = "false", iniziamo a ottenere i controlli isCacheable () come TRUE e anche a ottenere correttamente le intestazioni nelle pagine start- / category- / product.
X-Magento-Cache-Control:max-age=86400, public, s-maxage=86400
X-Magento-Cache-Debug:HIT
X-Magento-Cache-Hits:1
Age:32