Generieren Sie Probleme mit Katalogcache-Images neu


19

Ich führe einen Migrationsprozess von Magento 1.9.2.4 nach Magento 2.1.6 durch. Nach Abschluss der Migration verschiebe ich den Medienordner von M1 nach pub / media M2.

Jetzt ist das Problem, dass einige der Bilder nicht im Katalog- / Cache-Ordner generiert werden

Zum Beispiel werden untenstehende Bilder zu 404 nicht gefunden

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

Ich mochte einfach den Katalog-Cache-Ordner löschen und die Seite erneut laden, aber es geht immer noch um ein kaputtes Bild.

Meine Seite enthält 50% fehlerhafte Bilder

Bildbeschreibung hier eingeben

kann die Problemumgehung zur Behebung dieses Problems freigeben?


Hallo bilal, können Sie mir bitte helfen und vorschlagen, magento.stackexchange.com/questions/283277/…
Nagaraju K

Antworten:


28

Sie sollten versuchen, mit dem Befehl image resize alle erforderlichen Größenänderungen vorab zu generieren.

php bin/magento catalog:image:resize

Mit diesem Befehl werden alle im XML-Design definierten Bildgrößen abgerufen und die Bilder in den richtigen Ordnern vorgeneriert.

Weitere Informationen finden Sie in der Befehlsdokumentation unter http://devdocs.magento.com/guides/v2.1/frontend-dev-guide/themes/theme-images.html


5
Zu Ihrer Information: Es dauert absolut ewig, bis dieser Befehl in einem Geschäft beliebiger Größe ausgeführt wird. Wir haben in letzter Zeit mehr als 17 Stunden gesehen. Bei anderen Gelegenheiten musste es über ein Wochenende laufen. Siehe: github.com/magento/magento2/issues/8145
Leland

Ich hatte das gleiche Problem, das ich diese Cmd-Bilder laufen, aber nach dem Cache-Flush alle Bilder wieder kaputt und keine Bilder im Cache-Ordner
imtiazau

1
Wenn Sie php bin / magento catalogue: image: resize verwenden, dauert es länger als 1 Tag.
Soundararajan m


Ich erhalte Magento 2-Bilder von Magento 1 mit snipboard.io/JZ2bQR.jpg . Wie löse ich das Cache-Problem? @ Alex
Gem

0

Ich hatte auch dieses Problem und selbst die oben erwähnte Erzeugung von Befehlszeilenabbildern funktionierte nicht. Es sieht so aus, als würde Magento die Informationen zwischenspeichern, die für die Erstellung der Miniaturansichten benötigt werden, und selbst die standardmäßige Magento-Cache-Bereinigung (sowohl in der Befehlszeile als auch im Admin-Bereich) entfernt diese Informationen nicht aus dem Cache.

Ich habe den Inhalt aller Cache-Verzeichnisse manuell entfernt und es hat geholfen:

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

.. und so weiter. Dann sollten die Miniaturansichten der Bilder "on demand" beim Browsen auf der Website korrekt erstellt werden.


0

Ich hatte genau das gleiche Problem, aber mit Magento 2.3.2

Für mich waren es Miniaturbilder des Produkts, die den falschen Cache-Hash-Pfad hatten. Produkt- und Kategoriebilder waren korrekt, aber die Thumbs-URL war falsch und zeigte den standardmäßigen Magento-Bildplatzhalter.

Ich habe ein benutzerdefiniertes Thema verwendet.

Bei der Verwendung von SHH "PHP bin / Magento Katalog: Bilder: Größe ändern" - was war passiert? Die Bilder wurden unter Verwendung des Luma-Themas etc / view.xml anstelle der benutzerdefinierten Datei etc / view.xml generiert.

Das Problem. Beim Anzeigen meines benutzerdefinierten Designs im Browser, der Bilder in einer anderen Größe als das Luma-Design verwendet, konnte Magento die Bilder nicht finden und zeigt den Fehler 404 an.

Die Reparatur.

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

Ich habe eine Woche gebraucht, um herauszufinden, wie das behoben werden kann, aber jetzt funktioniert alles einwandfrei.



0

Antwort am 20. November 2019:

Das Regenerieren des Bild-Cache per Befehl ist keine praktikable Lösung für alle, da einige Websites mit vielen Produkten viel Zeit in Anspruch nehmen. Außerdem hatte ich einige Probleme wie: Wenn wir ein Cache-Image aus der CLI generieren, funktioniert es. Wenn wir zu diesem Zeitpunkt Bilder aus dem Admin-Bereich geleert oder das zwischengespeicherte Bild manuell gelöscht haben, wird beim Laden der Seite kein neues Cache-Bild generiert. Aus meiner Sicht besteht die beste Lösung darin, beim Laden der Seite einen Bild-Cache zu generieren.

Standardfluss

Der Standard-Magento-Flow wird beim Laden von Images (Medien) immer an pub / get.php weitergeleitet und überprüft, ob das Image vorhanden ist oder nicht. Wenn es nicht vorhanden ist, wird ein neues zwischengespeichertes Bild generiert. Wenn es existiert, gibt es diesen Pfad zurück. Das Image sollte also standardmäßig beim Laden der Seite generiert werden.

Wir können diese Pass-Through-Logik in den folgenden Dateien überprüfen

pub/media/.htaccessfür Apache Server

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

nginx.conf.samplefür Nginx Server

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

Wie überprüfe ich, ob diese Logik funktioniert oder nicht?

Setzen Sie echo "test";exit;in dem Start von pub / get.php und lud alle zwischengespeicherten Medien URL, sollte es drucken Test. Ansonsten stimmt etwas in Ihrer Serverkonfiguration nicht.

Wenn ich das Katalog-Cache-Verzeichnis (rm -rf pub / media / catalog / product / cache / *) danach lösche, wird beim Laden der Seite kein neues zwischengespeichertes Bild generiert und es wird keine 404-Seite gefunden und auch wird es nie get.php erreichen . Ich bemerkte dann, dass viele der Ordner falsche Berechtigungen hatten, die sich von 755 für Ordner und 644 für Dateien unterschieden. Nachdem ich die richtige Berechtigung festgelegt habe, funktioniert es einwandfrei.

Ich hoffe es gibt eine Idee.


Jede Hilfe magento.stackexchange.com/q/296715/57334 danke @Bilal Usean
zus
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.