Magento 2 Full Page Cache không hoạt động


8

Khi tôi bật tính năng FPC (Bộ nhớ cache toàn trang) trong trang web Magento CE 2.0.2 của tôi (không quan trọng nếu chủ đề mặc định hoặc chủ đề tùy chỉnh đang chạy.) Và khi tôi mở Trang chủ của trang web này, thì nó sẽ cho "Máy chủ nội bộ Lỗi 500 "trong bảng điều khiển Firefox và trang trống.

Điều gì có thể là vấn đề có thể?


Hãy thử bật chế độ nhà phát triển để xem lỗi là gì (cũng xem trong nhật ký lỗi của máy chủ web của bạn).
Steve Johnson

Bạn đã tìm thấy một giải pháp? chúng tôi có cùng một vấn đề vào ngày 2.0.6
Tối đa

Vấn đề tương tự đối với chúng tôi trên 2.1.1, PHP 5.6 FPM, Nginx. Kích hoạt chế độ nhà phát triển không cung cấp bất kỳ thông tin bổ sung nào. Lỗi PHP chúng tôi gặp là PHP Fatal error: Call to a member function getIdentities() on null in /vendor/magento/module-catalog/Block/Product/View.php on line 373Vấn đề nằm ở hàm getIdentities () trên dòng: $identities = $this->getProduct()->getIdentities(); $this->getProduct()là null khi bật Full Cache Cache.
Matt Mombrea

Câu trả lời:


11

Chúng tôi đã có cùng một vấn đề sau khi kích hoạt FPC. Các lỗi sau đây sẽ xảy ra:

Fatal error: Uncaught Error: Call to a member function getIdentities() on null in /vendor/magento/module-catalog/Block/Category/View.php:177 

Không phải là thông báo lỗi hữu ích nhất nhưng sau khi đào bới, chúng tôi thấy rằng điều này đã được kích hoạt bằng cách sử dụng loại khối Magento\Catalog\Block\Category\Viewtrên trang chủ của chúng tôi - có lẽ vì không có danh mục nào được khởi tạo tại thời điểm đó.

Đây là một lỗi mã hóa bởi một trong những nhà phát triển của chúng tôi vì khối đặc biệt này không cần loại đó và cũng ổn với Magento\Framework\View\Element\Templateloại tương đương với Magento 2 core/template.


2

viết lại hàm như thế này để xử lý các giá trị null:


public function getIdentities()
    {
        $identities = [];

        if (is_array($this->getItems()) || is_object($this->getItems()))
        {
            foreach ($this->getItems() as $item)
            {
                $identities = array_merge($identities, $item->getIdentities());
            }
        }
        return $identities;

}
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.