С кешем Magento 2.0.4 , точнее кешированием страниц , все работает.
Если я отключу его, удалите файлы cookie и войдите в систему как клиент, чем продукты в миникарте .
Приветственное сообщение на самом деле не работает правильно. Я должен добавить продукт в корзину со страницы продукта, чтобы увидеть мини-карту. Если я иду к оформлению заказа, страна не отображается в сводке адресов (адрес доставки уже добавлен в мой аккаунт).
Я сделал отладки , и это выглядит как проблема указывает на:
module-customer/view/frontend/web/js/customer-data.js
. Файл cookie private_content_version
устанавливается module-page-cache/view/frontend/web/js/page-cache.js
и используется в customer-data.js
. Смотрите customerData::reload
функцию.
Если кеш страниц отключен, данные не загружаются с сервера, как это dataProvider::getFromServer()
делает функция .
Когда кеш страниц отключен, cookie private_content_version
там нет (page-cache.js не выполняется по ходу). Но файл cookie section_data_ids
содержит только '*' и 'messages' => empty (false или null).
Когда кеш страниц включен, есть private_content_version
и section_data_ids
есть какие ключи со значениями:
*: null
cart: 123
compare-products: 123
customer: 123
directory-data: 123
last-ordered-items: 123
multiplewishlist: 123
review: 123
wishlist: 123
После того, как я вошел в систему с включенным кешем страниц, на информационной панели клиента есть 2 дополнительных ajax-запроса, которые загружают данные:
http://test.localhost/customer/section/load/?sections=&update_section_id=false&_=123
http://test.localhost/customer/section/load/?sections=directory-data&update_section_id=false&_=123
Они содержат объекты json с данными о клиентах и каталогами, как все страны и регионы. При этих вызовах при оформлении заказа в сводке адреса отображается название страны. Смотрите: module-customer/view/frontend/web/js/sections-config.js
и module-checkout/view/frontend/web/js/view/shipping-address/address-renderer/default.js
, функция getCountryName
.
Это ошибка в Magento 2 или я что-то напутал? Благодарность
источник
GET http://example.com/customer/section/load/?sections=&update_section_id=false&_=1462374643065 500 (Internal Server Error)
Ответы:
Это кажется нерешенной проблемой, хотя, возможно, она решена в более новых версиях M2. Смотрите вопросы Magento GitHub:
«Нет товаров» в мини-карте в 2.1 (открыть на момент написания статьи)
Мини-карта пуста, если FPC отключен в Magento 2.1.1 (открыть на момент написания статьи)
Minicart не показывает продукт, даже если у меня есть продукты в корзине (закрыто)
Насколько вы можете попробовать ...
Если это связано с файлами cookie, вы можете исключить некоторые возможности, посетив ваш сайт в приватном браузере / инкогнито-браузере. Просмотрите рабочий процесс (не вошли в систему, добавьте продукт в корзину, войдите в систему, просмотрите / checkout / cart и раскрывающийся список мини-карт).
Кроме того, может быть полезно ознакомиться с документацией разработчиков M2 для получения рекомендаций по настройке кэшей при разработке по сравнению с конфигурации в производстве . По моему опыту, при разработке все в порядке, чтобы все кеши были включены в разработку и просто очищались при необходимости (читайте документы для описания каждого кеша). Обратите внимание, что в основном как передовой разработчик, я лично предпочитаю разрабатывать с отключенным выходом FPC, Blocks и кэши разметки - это позволяет легче видеть изменения внешнего интерфейса.
источник