Magento 2 minicart, ข้อความต้อนรับ, อื่น ๆ ไม่ทำงานกับเพจแคชถูกปิดใช้งานหลังจากที่ลูกค้าเข้าสู่ระบบ


16

ด้วยMagento 2.0.4 cache เปิดใช้งานแคชเฉพาะหน้ามากขึ้นทุกอย่างทำงานได้

ถ้าฉันปิดการใช้งานล้างคุกกี้และเข้าสู่ระบบในฐานะลูกค้ามากกว่าผลิตภัณฑ์ในminicartที่ไม่มี

ข้อความต้อนรับไม่ทำงานจริง ๆ ฉันต้องเพิ่มผลิตภัณฑ์ลงในรถเข็นจากหน้าผลิตภัณฑ์เพื่อที่จะได้เห็นรถมินิมาร์ท มากกว่าถ้าฉันไปเช็คเอาต์ประเทศจะไม่ปรากฏในที่อยู่สรุป (ที่อยู่จัดส่งเพิ่มในบัญชีของฉันแล้ว)

module-customer/view/frontend/web/js/customer-data.jsฉันได้ทำการแก้จุดบกพร่องและดูเหมือนว่าปัญหาจะชี้ไปที่: คุกกี้private_content_versionตั้งอยู่ในและนำมาใช้ในmodule-page-cache/view/frontend/web/js/page-cache.js customer-data.jsดูcustomerData::reloadฟังก์ชั่น

ด้วยแคชหน้าปิดการใช้งานข้อมูลไม่ได้โหลดจากเซิร์ฟเวอร์เป็นฟังก์ชั่นdataProvider::getFromServer()ไม่

เมื่อแคชหน้าถูกปิดใช้งานคุกกี้private_content_versionจะไม่อยู่ที่นั่น (page-cache.js ไม่ได้ถูกดำเนินการนอกหลักสูตร) แต่คุกกี้section_data_idsมีเพียง '*' และ 'ข้อความ' => ว่าง (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

หลังจากที่ฉันเข้าสู่ระบบด้วยการเปิดใช้งานแคชหน้าแดชบอร์ดลูกค้ามีคำขอ ajax เพิ่มเติมอีก 2 คำขอที่โหลดข้อมูล:

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.jsgetCountryName

นี่เป็นข้อผิดพลาดของMagento 2หรือเป็นสิ่งที่ฉันทำผิดพลาด ขอบคุณ


คุณสามารถแก้ไขหรือค้นหาสิ่งที่ก่อให้เกิดสิ่งนี้หรือไม่ ฉันมีปัญหาที่คล้ายกันมากวีโอไอพีเวอร์ชั่น 2.0.1 ถ้าฉันล้างแคช (ลบโฟลเดอร์แคชทั้งหมด) ฉันได้รับข้อความแสดงข้อผิดพลาดที่คล้ายกันในคอนโซลของเบราว์เซอร์:GET http://example.com/customer/section/load/?sections=&update_section_id=false&_=1462374643065 500 (Internal Server Error)
maginfortis

1
ยังไม่พบวิธีแก้ปัญหา ในกรณีของคุณอาจเป็นกรณีที่ง่ายกว่า ดูว่าข้อผิดพลาดคืออะไรและพยายามแก้ไข เปิดใช้งานข้อผิดพลาดใน Magento 2 และแก้ไขข้อผิดพลาดเฉพาะนั้น ฉันไม่ได้รับข้อผิดพลาดเป็นเพียงการที่ไม่โหลดข้อมูล ฉันไม่เห็นข้อผิดพลาดในกรณีของฉัน
ปิดบัง

ฉันต้องเผชิญกับข้อผิดพลาดเดียวกันและฉันจะบอกว่ามันเป็นข้อผิดพลาด magento2 เช่นเดียวกับการเปิดใช้งาน FPC มันจะทำงาน แต่เมื่อคุณปิดการใช้งานมันจะไม่ ในการแก้ไขปัญหาชั่วคราวคุณต้องรีเฟรช minicart แบบเป็นโปรแกรมในแต่ละหน้า
Salma Saiyad

คำตอบ:


0

สิ่งนี้ดูเหมือนจะเป็นปัญหาที่โดดเด่นแม้ว่าบางทีมันอาจได้รับการแก้ไขใน M2 รุ่นที่ใหม่กว่า ดูปัญหา Magento GitHub:

เท่าที่คุณสามารถลอง ...

หากสิ่งนี้เกี่ยวข้องกับคุกกี้คุณอาจสามารถแยกแยะความเป็นไปได้บางอย่างด้วยการเยี่ยมชมไซต์ของคุณในเบราว์เซอร์ส่วนตัว / เบราว์เซอร์ที่ไม่ระบุตัวตน ผ่านขั้นตอนการทำงานของคุณ (ไม่ได้ลงชื่อเข้าใช้เพิ่มสินค้าลงในรถเข็นเข้าสู่ระบบลูกค้าดูที่ / ชำระเงิน / สั่งซื้อและเลื่อนลงมินิบาร์)

นอกจากนี้ก็อาจจะเป็นประโยชน์ในการตรวจสอบเอกสาร dev M2สำหรับการปฏิบัติที่ดีที่สุดเกี่ยวกับการกำหนดค่าของแคชในการพัฒนาเมื่อเทียบกับการกำหนดค่าในการผลิต จากประสบการณ์ของฉันในการพัฒนามันก็โอเคที่จะเปิดใช้งานแคชทั้งหมดในการพัฒนาและเพียงแค่ล้างเมื่อจำเป็น (อ่านเอกสารสำหรับคำอธิบายของแต่ละแคช) หมายเหตุในฐานะที่เป็น dev ส่วนใหญ่ของ front-end ฉันเองชอบที่จะพัฒนาด้วย FPC ปิดกั้นเอาต์พุตและปิดใช้งานรูปแบบแคช - ซึ่งช่วยให้สามารถเห็นการเปลี่ยนแปลงส่วนหน้าได้ง่ายขึ้น

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.