สร้างภาพอิมเมจแคชของแคตาล็อกใหม่


19

ฉันกำลังทำกระบวนการย้ายข้อมูลจาก Magento 1.9.2.4 ไปยัง Magento 2.1.6 หลังจากการย้ายเสร็จแล้วฉันย้ายโฟลเดอร์สื่อของ M1 ไปยัง pub / media M2

ตอนนี้ปัญหาคือภาพบางรูปไม่ได้สร้างในโฟลเดอร์แคตตาล็อก / แคช

ตัวอย่างเช่นภาพด้านล่างจะไปที่ 404 ไม่พบ

pub/media/catalog/product/cache/f9c7fbe9b524c081a3ccf800cbd963eb/m/s/msj006c-red_2.jpg
pub/media/catalog/product/cache/75eed2686e01eb22cb4050b2f40ddf97/m/s/msj006c-red_2.jpg
pub/media/catalog/product/cache/f9c7fbe9b524c081a3ccf800cbd963eb/m/s/msj006c-red_2.jpg

ฉันชอบเพียงแค่ลบโฟลเดอร์แคชแคตตาล็อกและโหลดหน้าอีกครั้ง แต่ก็ยังไปที่ภาพเสีย

หน้าของฉันมีภาพแตก 50%

ป้อนคำอธิบายรูปภาพที่นี่

สามารถแชร์วิธีแก้ปัญหาเพื่อแก้ไขปัญหานี้ได้หรือไม่


สวัสดี bilal ช่วยได้โปรดช่วยฉันและแนะนำmagento.stackexchange.com/questions/283277/…
Nagaraju K

คำตอบ:


29

คุณควรลองใช้คำสั่งการปรับขนาดภาพเพื่อสร้างการปรับขนาดที่จำเป็นทั้งหมดล่วงหน้า

php bin/magento catalog:image:resize

คำสั่งนี้รับขนาดรูปภาพทั้งหมดที่กำหนดไว้ในธีม XML และสร้างรูปภาพล่วงหน้าในโฟลเดอร์ที่ถูกต้อง

คุณสามารถตรวจสอบเอกสารคำสั่งสำหรับข้อมูลเพิ่มเติมได้ที่http://devdocs.magento.com/guides/v2.1/frontend-dev-guide/themes/theme-images.html


5
FYI - คำสั่งนี้ใช้เวลาอย่างถาวรในการรันในร้านค้าทุกขนาด เราเห็นเวลา 17 ชั่วโมงขึ้นไปเมื่อเร็ว ๆ นี้ ในโอกาสอื่น ๆ มันจะต้องทำงานในช่วงสุดสัปดาห์ ดู: github.com/magento/magento2/issues/8145
Leland

ฉันมีปัญหาเดียวกันฉันทำงานนี้ภาพ cmd แสดง แต่หลังจากล้างแคชภาพทั้งหมดเสียอีกครั้งและไม่มีภาพในโฟลเดอร์แคช
imtiazau

1
หากคุณใช้แคตตาล็อก php / magento: รูปภาพ: ปรับขนาดแล้วจะใช้เวลามากกว่า 1 วันและวิธีการที่ดีที่สุดอื่น ๆ ?
Soundararajan m

@Alex Dinca โปรดช่วยฉันได้ที่magento.stackexchange.com/questions/283277/…
Nagaraju K

ฉันได้รับ Magento 2 ภาพจาก Magento 1 โดยใช้ snipboard.io/JZ2bQR.jpgจะแก้ปัญหาแคชได้อย่างไร? @Alex
Gem

0

ฉันยังมีปัญหานี้และแม้กระทั่งการสร้างอิมเมจบรรทัดคำสั่งที่กล่าวถึงข้างต้นไม่ทำงาน ดูเหมือนว่าวีโอไอพีกำลังแคชข้อมูลที่สร้างภาพย่อและแม้แต่การล้างแคชวีโอไอพีแบบมาตรฐาน (ทั้งบรรทัดคำสั่งหรือแผงควบคุม) ไม่ได้ลบข้อมูลนี้ออกจากแคช

ฉันลบเนื้อหาไดเรกทอรีแคชทั้งหมดด้วยตนเองและช่วย:

rm -Rf var/cache/*
rm -Rf var/page_cache/*

.. และอื่น ๆ จากนั้นรูปภาพขนาดย่อควรสร้าง "ตามต้องการ" อย่างเหมาะสมในขณะเรียกดูไซต์


0

ฉันมีปัญหาเดียวกันนี้ แต่กับ Magento 2.3.2

สำหรับฉันมันเป็นภาพขนาดย่อของผลิตภัณฑ์ที่มีเส้นทางแฮแคชผิด ภาพผลิตภัณฑ์และหมวดหมู่นั้นถูกต้อง แต่ URL ของนิ้วหัวแม่มือไม่ถูกต้องและแสดงตัวยึดรูปแบบวีโอไอพีมาตรฐาน

ฉันใช้ธีมที่กำหนดเอง

เมื่อใช้ SHH "php bin / magento catalog: images: resize" - เกิดอะไรขึ้น? รูปภาพถูกสร้างขึ้นโดยใช้ธีม Luma etc / view.xml แทนไฟล์ etc / view.xml ธีมที่กำหนดเอง

ปัญหา. เมื่อดูชุดรูปแบบที่กำหนดเองของฉันในเบราว์เซอร์ซึ่งใช้รูปภาพขนาดแตกต่างกันไปยังชุดรูปแบบ Luma วีโอไอพีไม่พบรูปภาพและแสดงข้อผิดพลาด 404

การแก้ไข

Replace Luma themes etc/view.xml with my custom theme etc/view.xml
Using SHH run "php bin/magento catalog:images:resize

ฉันใช้เวลาหนึ่งสัปดาห์เพื่อหาวิธีแก้ไขปัญหานี้ แต่ตอนนี้ก็ใช้ได้ดี


0

โปรดดูการกำหนดค่าของคุณในชุดรูปแบบที่คุณใช้และตรวจสอบให้แน่ใจว่าการกำหนดค่าในที่เก็บซอร์สของคุณเหมือนกันกับที่อยู่ในเป้าหมายของคุณ คุณสามารถอ้างถึงสิ่งนี้: https://devdocs.magento.com/guides/v2.3/frontend-dev-guide/themes/theme-images.html

จากนั้นเรียกใช้:

แคตตาล็อก php bin / magento: images: resize

แจ้งให้เราทราบหากนี่ช่วยได้!


0

ตอบวันที่ 20 พฤศจิกายน 2562:

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

โฟลว์เริ่มต้น

ค่าเริ่มต้นการไหลของวีโอไอพีคือเมื่อใดก็ตามที่โหลดรูปภาพ (สื่อ) มันจะผ่านการร้องขอไปยัง pub / get.php และตรวจสอบว่ามีภาพอยู่หรือไม่ หากไม่มีอยู่รูปภาพนั้นจะสร้างรูปภาพแคชใหม่ หากมีอยู่มันจะคืนค่าเส้นทางนั้น ดังนั้นโดยภาพเริ่มต้นควรสร้างในการโหลดหน้า

เราสามารถตรวจสอบรหัสผ่านนี้ด้วยตรรกะในไฟล์ด้านล่าง

pub/media/.htaccessสำหรับเซิร์ฟเวอร์ apache

RewriteRule .* ../get.php [L]
.............................
.............................

nginx.conf.sampleสำหรับเซิร์ฟเวอร์ nginx

location /media/ {
    try_files $uri $uri/ /get.php$is_args$args;
    .......................................
    .......................................

วิธีการตรวจสอบตรรกะนี้ทำงานหรือไม่

ใส่echo "test";exit;จุดเริ่มต้นของ pub / get.php และโหลด URL สื่อใด ๆ ที่แคชไว้ควรพิมพ์ทดสอบ มิฉะนั้นมีข้อผิดพลาดในการกำหนดค่าเซิร์ฟเวอร์ของคุณ

สำหรับฉันทุกครั้งที่ฉันลบไดเรกทอรีแคชแคตตาล็อก (rm -rf pub / media / catalog / product / cache / *) หลังจากนั้นเมื่อเราโหลดหน้ามันจะไม่สร้างภาพแคชใหม่และจะไปที่หน้า 404 และ ยังไม่เคยได้รับ . php ฉันสังเกตว่าโฟลเดอร์หลายแห่งมีการอนุญาตที่ไม่ถูกต้องแตกต่างจาก 755 สำหรับโฟลเดอร์และ 644 สำหรับไฟล์ หลังจากที่ฉันตั้งสิทธิ์ที่ถูกต้องก็ใช้งานได้ดี

ฉันหวังว่ามันจะให้ความคิดบางอย่าง


ความช่วยเหลือใด ๆmagento.stackexchange.com/q/296715/57334ขอบคุณ @Bilal Usean
ZUS
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.