Respuesta el 20 de noviembre de 2019:
Regenerar caché de imágenes por comando no es una solución factible para todos porque tomará mucho tiempo para algunos sitios web que tienen muchos productos. Además, enfrenté algunos problemas como si generamos una imagen de caché desde la CLI, funcionará. Cuando enjuagamos las imágenes del administrador o eliminamos la imagen en caché manualmente en ese momento, no generará una imagen de caché nuevamente al cargar la página, por lo que necesito ejecutar el comando regenerar una y otra vez. Según mi punto de vista, la mejor solución es generar caché de imágenes en la carga de la página.
Flujo predeterminado
El flujo predeterminado de Magento es cuando carga imágenes (medios), siempre pasará la solicitud a pub / get.php y comprobará si la imagen existe o no. Si no existe, generará una nueva imagen en caché. Si existe, devolverá ese camino. Por lo tanto, la imagen por defecto debería generar al cargar la página.
Podemos verificar este paso a través de la lógica en los archivos a continuación
pub/media/.htaccess
para el servidor apache
RewriteRule .* ../get.php [L]
.............................
.............................
nginx.conf.sample
para el servidor nginx
location /media/ {
try_files $uri $uri/ /get.php$is_args$args;
.......................................
.......................................
¿Cómo verificar si esta lógica funciona o no?
Poner echo "test";exit;
al inicio de pub / get.php y cargar cualquier URL de medios en caché, debe imprimir la prueba. De lo contrario, algo anda mal en la configuración de su servidor.
Para mí, cada vez que elimino el directorio de caché del catálogo (rm -rf pub / media / catalog / product / cache / *) después de eso, cuando cargamos la página, no generará una nueva imagen en caché y va a la página 404 no encontrada y También nunca llega a get.php . Luego noté que muchas de las carpetas tenían permisos incorrectos diferentes de 755 para carpetas y 644 para archivos. Después de establecer el permiso correcto, funciona bien.
Espero que te dé alguna idea.