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/.htaccess
für Apache Server
RewriteRule .* ../get.php [L]
.............................
.............................
nginx.conf.sample
fü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.