Resposta em 20 de novembro de 2019:
A regeneração do cache de imagens por comando não é uma solução viável para todos, pois levará muito tempo para algum site com muitos produtos. Além disso, enfrentei alguns problemas como: se gerarmos uma imagem de cache da CLI, ela funcionará. Quando liberamos imagens do admin ou excluímos a imagem em cache manualmente naquele momento, ela não gerará uma imagem em cache novamente no carregamento da página, por isso preciso executar o comando regenerar novamente e novamente. De acordo com meu ponto de vista, a melhor solução é gerar cache de imagem no carregamento da página.
Fluxo Padrão
O fluxo padrão do Magento é sempre que ele carrega a imagem (mídia), ele sempre passa pela solicitação para pub / get.php e verifica se a imagem existe ou não. Se não existir, ele gerará uma nova imagem em cache. Se existir, ele retornará esse caminho. Portanto, por padrão, a imagem deve gerar no carregamento da página.
Podemos verificar essa passagem através da lógica nos arquivos abaixo
pub/media/.htaccess
para servidor apache
RewriteRule .* ../get.php [L]
.............................
.............................
nginx.conf.sample
para servidor nginx
location /media/ {
try_files $uri $uri/ /get.php$is_args$args;
.......................................
.......................................
Como verificar se essa lógica está funcionando ou não?
Coloque echo "test";exit;
no início do pub / get.php e carregue qualquer URL de mídia em cache, ele deve imprimir teste. Caso contrário, algo está errado na configuração do servidor.
Para mim, sempre que eu excluí o diretório de cache do catálogo (rm -rf pub / media / catalog / product / cache / *) depois disso, quando carregamos a página, ela não gera uma nova imagem em cache e vai para a página 404 não encontrada e também nunca chega a get.php . Percebi então que muitas das pastas estavam com permissões incorretas diferentes de 755 para pastas e 644 para arquivos. Depois de definir a permissão correta, ele funciona bem.
Espero que dê alguma idéia.