Penting untuk memahami mengapa Anda tidak ingin memblokir cache. Jika ini dimaksudkan untuk menampilkan beberapa informasi spesifik sesi maka Anda harus melihat ke dalamnya
Salah satu opsi yang tidak direkomendasikan bisa juga kontroler kustom yang mengembalikan beberapa data melalui panggilan ajax (dengan metode POST sehingga tidak akan di-cache).
(!) cacheable = "false" tidak boleh digunakan. Di sini akan mengikuti, MENGAPA tidak:
Blok dengan cacheable = "false" akan membuat seluruh halaman tidak di-cache. Ini tidak digunakan untuk meninju lubang cache. Halaman berikut juga mengatakan ini ( Untuk membuat halaman yang tidak bisa di-cache , tandai semua blok pada halaman itu sebagai tidak bisa di-cache dalam layout menggunakan cacheable = "false" ):
Apa yang dilakukannya adalah modul Varnish / Fastly akan mengirimkan karena nilai atribut ini selalu non-cacheable header.
Ketika kami mengaktifkan cachable = "false" dan saat menggunakan Varnish / Fastly maka header browser berikut header dikirim:
X-Magento-Cache-Debug:MISS
X-Magento-Cache-Control:max-age=0, must-revalidate, no-cache, no-store
Age: 0
Untuk itu dapat di debugged kode caching halaman Magento aktif
vendor/magento/module-page-cache/Model/Layout/LayoutPlugin.php::afterGenerateXml
vendor/magento/module-page-cache/Model/Layout/LayoutPlugin.php::afterGetOutput
di mana yang pertama harus mengirim Cache-Control publik dengan TTL dan yang kedua harus mengirim X-Magento-Tag untuk Varnish / Fastly.
Keduanya menggunakan isCacheable () periksa di mana ini selalu mengembalikan FALSE karena cek berikut (periksa apakah dalam tata letak saat ini ada atribut: cacheable = "false"):
$cacheableXml = !(bool)count($this->getXml()->xpath('//' . Element::TYPE_BLOCK . '[@cacheable="false"]'));
Ketika kita menghapus cacheable = "false" maka kita mulai mendapatkan isCacheable () memeriksa sebagai TRUE dan juga mendapatkan header dengan benar di halaman 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