Chúng tôi cũng đang đối mặt với cùng một vấn đề và nó vẫn cần được gỡ lỗi một cách chi tiết. Nhưng chúng tôi đang sử dụng dưới đây là sửa chữa tạm thời
Sửa đổi phương thức 'aroundDispatch' của nhà cung cấp tệp / magento / mô-đun-trang-bộ đệm / Mô hình / Ứng dụng / FrontContoder / BuildinPlugin.php như bên dưới
public function aroundDispatch(
\Magento\Framework\App\FrontControllerInterface $subject,
\Closure $proceed,
\Magento\Framework\App\RequestInterface $request
) {
$this->version->process();
if (!$this->config->isEnabled() || $this->config->getType() != \Magento\PageCache\Model\Config::BUILT_IN) {
return $proceed($request);
}
$result = $this->kernel->load();
if ($result === false || ($result instanceof ResponseHttp && $result->getStatusCode() == 404)) {
$result = $proceed($request);
if ($result instanceof ResponseHttp) {
$this->addDebugHeaders($result);
$this->kernel->process($result);
}
} else {
$this->addDebugHeader($result, 'X-Magento-Cache-Debug', 'HIT', true);
}
return $result;
}
Sự thay đổi trong chức năng là: Điều kiện IF thay đổi từ
if ($result === false) {
đến
if ($result === false || ($result instanceof ResponseHttp && $result->getStatusCode() == 404)) {
Thay đổi mã này sẽ bỏ qua và xây dựng lại bộ đệm toàn bộ trang nếu kết quả tìm thấy trong bộ đệm là 404.
Tôi hi vọng cái này giúp được.