Điều quan trọng là phải hiểu lý do tại sao bạn không muốn chặn bộ đệm. Nếu điều này có nghĩa là hiển thị một số thông tin cụ thể về phiên thì bạn nên xem xét
Một tùy chọn không được đề xuất cũng có thể là bộ điều khiển tùy chỉnh trả về một số dữ liệu qua cuộc gọi ajax (với phương thức POST để nó không bị lưu vào bộ đệm).
(!) cacheable = "false" không được sử dụng. Ở đây sẽ làm theo, TẠI SAO không:
Một khối có bộ nhớ cache = "false" sẽ làm cho toàn bộ trang không bị khóa. Nó không được sử dụng để đục lỗ bộ nhớ cache. Ngoài ra trang sau nói điều này ( Để tạo một trang không thể truy cập , hãy đánh dấu bất kỳ khối nào trên trang đó là không thể truy cập trong bố cục bằng cách sử dụng bộ nhớ cache = "false" ):
Những gì nó làm là các mô-đun Varnish / Fastly sẽ được gửi do giá trị thuộc tính này luôn luôn là các tiêu đề không lưu trong bộ nhớ cache.
Khi chúng tôi kích hoạt bộ nhớ cache = "false" và trong khi sử dụng Varnish / Nhanh chóng thì các tiêu đề phía sau trình duyệt sẽ được gửi:
X-Magento-Cache-Debug:MISS
X-Magento-Cache-Control:max-age=0, must-revalidate, no-cache, no-store
Age: 0
Để có thể gỡ lỗi mã bộ nhớ cache trang của Magento trên
vendor/magento/module-page-cache/Model/Layout/LayoutPlugin.php::afterGenerateXml
vendor/magento/module-page-cache/Model/Layout/LayoutPlugin.php::afterGetOutput
trong đó cái đầu tiên sẽ gửi Kiểm soát bộ nhớ cache công khai với TTL và thứ hai sẽ gửi X-Magento-Tags cho Varnish / Fastly.
Cả hai đều đang sử dụng kiểm tra isCachizable () trong đó kiểm tra này luôn trả về FALSE do kiểm tra sau (kiểm tra xem trong bố cục hiện tại có bất kỳ thuộc tính nào không: cacheable = "false"):
$cacheableXml = !(bool)count($this->getXml()->xpath('//' . Element::TYPE_BLOCK . '[@cacheable="false"]'));
Khi chúng tôi xóa bộ nhớ cache = "false" thì chúng tôi bắt đầu nhận các kiểm tra isCachizable () là TRUE và cũng nhận được các tiêu đề chính xác trên các trang bắt đầu- / category- / sản phẩm.
X-Magento-Cache-Control:max-age=86400, public, s-maxage=86400
X-Magento-Cache-Debug:HIT
X-Magento-Cache-Hits:1
Age:32