Regenerasi masalah gambar cache katalog

19

Saya melakukan proses migrasi dari Magento 1.9.2.4 ke Magento 2.1.6, setelah migrasi selesai, saya memindahkan folder media M1 ke pub / media M2.

Sekarang masalahnya adalah beberapa gambar tidak menghasilkan dalam folder katalog / cache

Misalnya gambar di bawah ini adalah 404 tidak ditemukan

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

Saya memang suka hanya menghapus folder cache katalog dan memuat halaman lagi tapi tetap saja rusak gambar.

Halaman saya memiliki 50% gambar rusak

masukkan deskripsi gambar di sini

dapat berbagi solusinya untuk memperbaiki masalah ini?

Bilal Usean
sumber
Hai bilal, bisakah Anda membantu saya dan menyarankan magento.stackexchange.com/questions/283277/…
Nagaraju K

Jawaban:

29

Anda harus mencoba menggunakan perintah pengubahan ukuran gambar untuk mempre-generate semua ukuran yang diperlukan.

php bin/magento catalog:image:resize

Perintah ini mendapatkan semua ukuran gambar yang telah ditentukan dalam tema XML dan pregenerasi gambar dalam folder yang benar.

Anda juga dapat memeriksa dokumentasi perintah untuk informasi lebih lanjut http://devdocs.magento.com/guides/v2.1/frontend-dev-guide/themes/theme-images.html

Alex Dinca
sumber
5
FYI - perintah ini benar-benar selamanya berjalan di toko ukuran berapa pun. Kami melihat ke atas dari 17 jam di jalankan baru-baru ini. Pada kesempatan lain, itu harus dijalankan selama akhir pekan. Lihat: github.com/magento/magento2/issues/8145
Leland
saya memiliki masalah yang sama saya menjalankan gambar cmd ini menunjukkan tetapi setelah flush cache semua gambar rusak lagi dan tidak ada gambar di folder cache
imtiazau
1
Jika Anda menggunakan katalog php bin / magento: image: resize maka itu akan memakan waktu lebih dari 1 hari, dan ada metode terbaik lainnya?
Soundararajan m
@Alex Dinca bisa tolong bantu saya di magento.stackexchange.com/questions/283277/…
Nagaraju K
Saya mendapatkan gambar Magento 2 dari Magento 1 menggunakan snipboard.io/JZ2bQR.jpg , bagaimana cara mengatasi masalah cache? @Alex
Permata
0

Saya juga punya masalah ini dan bahkan generasi gambar baris perintah yang disebutkan di atas tidak berhasil. Tampaknya Magento melakukan caching informasi bahwa thumbnail dibuat dan bahkan pembersihan cache Magento standar (baik baris perintah atau panel admin) tidak menghapus informasi ini dari cache.

Saya menghapus semua isi direktori cache secara manual dan itu membantu:

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

.. dan seterusnya. Maka gambar thumbnail harus menghasilkan dengan benar "sesuai permintaan" saat menjelajahi situs.

A.Maksymiuk
sumber
0

Saya punya masalah yang sama persis ini tetapi dengan Magento 2.3.2

Bagi saya itu adalah gambar mini produk yang memiliki jalur hash cache yang salah. Gambar produk dan kategori benar, tetapi URL jempol salah dan menampilkan placeholder gambar Magento std.

Saya menggunakan tema khusus.

Saat menggunakan SHH "katalog php bin / magento: images: resize" - apa yang terjadi? Gambar-gambar tersebut dihasilkan menggunakan tema Luma etc / view.xml alih-alih file kustom etc / view.xml.

Masalah. Saat melihat tema khusus saya di browser yang menggunakan gambar ukuran berbeda untuk tema Luma, Magento tidak dapat menemukan gambar dan menunjukkan kesalahan 404.

Cara mengatasinya.

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

Saya membutuhkan waktu seminggu untuk mencari tahu cara memperbaikinya, tetapi sekarang semuanya berfungsi dengan baik.

colin008
sumber
0

Jawaban pada 20 November 2019:

Regenerasi cache gambar dengan perintah bukanlah solusi yang layak untuk semua karena akan memakan banyak waktu untuk beberapa situs web yang memiliki banyak produk. Juga, saya menghadapi beberapa masalah seperti Jika kita menghasilkan gambar cache dari CLI, itu akan berhasil. Ketika kami mem-flush gambar dari admin atau menghapus gambar yang di-cache secara manual pada saat itu tidak akan menghasilkan gambar cache lagi di halaman memuat jadi saya perlu menjalankan perintah regenerasi lagi dan lagi. Sesuai sudut pandang saya, solusi terbaik adalah menghasilkan cache gambar pada pemuatan halaman.

Arus Bawaan

Alur Magento default adalah setiap kali memuat gambar (media), itu akan selalu melewati permintaan ke pub / get.php dan memeriksa apakah gambar itu ada atau tidak. Jika tidak ada, itu akan menghasilkan gambar cache yang baru. Jika ada, itu akan mengembalikan jalur itu. Jadi secara default gambar harus dihasilkan pada pemuatan halaman.

Kita dapat memeriksa logika pass through ini dalam file di bawah ini

pub/media/.htaccessuntuk server apache

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

nginx.conf.sampleuntuk server nginx

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

Bagaimana cara mengecek apakah logika ini berfungsi atau tidak?

Masukkan echo "test";exit;awal pub / get.php dan muat URL media yang di-cache, itu harus mencetak tes. Kalau tidak ada yang salah dalam konfigurasi server Anda.

Bagi saya, setiap kali saya menghapus direktori cache katalog (rm -rf pub / media / catalog / product / cache / *) setelah itu ketika kita memuat halaman itu tidak akan menghasilkan gambar cache yang baru dan masuk ke halaman 404 tidak ditemukan dan juga tidak pernah mencapai get.php . Saya kemudian memperhatikan bahwa banyak folder yang memiliki izin salah berbeda dari 755 untuk folder dan 644 untuk file. Setelah saya mengatur izin yang tepat, itu berfungsi dengan baik.

Saya harap ini memberikan beberapa ide.

Bilal Usean
sumber
Any help magento.stackexchange.com/q/296715/57334 terima kasih @Bilal Usean
zus