Regenerar problemas de imagens de cache de catálogo


19

Estou fazendo o processo de migração do Magento 1.9.2.4 para o Magento 2.1.6. Após a migração concluída, movo a pasta de mídia do M1 para o pub / media M2.

Agora, o problema é que algumas das imagens não são geradas na pasta catálogo / cache

Por exemplo, as imagens abaixo são para 404 não encontrado

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

Eu simplesmente gostei de excluir a pasta de cache do catálogo e carregar a página novamente, mas ainda assim ela vai para a imagem quebrada.

Minha página tem 50% de imagens quebradas

insira a descrição da imagem aqui

pode compartilhar a solução alternativa para corrigir esse problema?


Oi bilal u pode por favor me ajudar e sugerir magento.stackexchange.com/questions/283277/…
Nagaraju K

Respostas:


29

Você deve tentar usar o comando redimensionar imagem para pré-gerar todos os redimensionamentos necessários.

php bin/magento catalog:image:resize

Este comando obtém todos os tamanhos de imagens que foram definidos no tema XML e gera novamente as imagens em suas pastas corretas.

Você também pode verificar a documentação do comando para obter mais informações http://devdocs.magento.com/guides/v2.1/frontend-dev-guide/themes/theme-images.html


5
FYI - esse comando leva absolutamente uma eternidade para ser executado em uma loja de qualquer tamanho. Vimos mais de 17 horas em uma corrida recente. Em outras ocasiões, ele precisava ser executado durante um fim de semana. Veja: github.com/magento/magento2/issues/8145
Leland

Eu tive o mesmo problema
executei

1
Se você usa o php bin / magento catalogue: image: redimensionar, levará mais de 1 dias e algum outro melhor método?
Soundararajan m

@Alex Dinca, por favor, você poderia me ajudar neste magento.stackexchange.com/questions/283277/…
Nagaraju K

Estou recebendo imagens do Magento 2 do Magento 1 usando snipboard.io/JZ2bQR.jpg , como resolver o problema de cache? @Alex
Gem

0

Eu também tive esse problema e até a geração de imagens de linha de comando mencionada acima não funcionou. Parece que o Magento está armazenando em cache as informações que são criadas em miniatura e mesmo a limpeza padrão do cache do Magento (tanto na linha de comando quanto no painel de administração) não remove essas informações do cache.

Removai todo o conteúdo dos diretórios de cache manualmente e ajudou:

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

.. e assim por diante. Em seguida, as miniaturas de imagens devem gerar corretamente "sob demanda" durante a navegação no site.


0

Eu tive exatamente o mesmo problema, mas com o Magento 2.3.2

Para mim, eram as imagens em miniatura do produto que tinham o caminho de hash do cache errado. As imagens do produto e da categoria estavam corretas, mas o URL dos polegares estava incorreto e exibia o espaço reservado para a imagem padrão do Magento.

Eu estava usando um tema personalizado.

Ao usar o SHH "php bin / magento catalogue: images: redimensionar" - o que estava acontecendo? As imagens estavam sendo geradas usando o tema Luma etc / view.xml em vez do arquivo customizado etc / view.xml.

O problema. Ao visualizar meu tema personalizado no navegador que usa imagens de tamanhos diferentes do tema Luma, o Magento não conseguiu encontrar as imagens e mostra o erro 404.

O conserto.

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

Levei uma semana para descobrir como consertar isso, mas tudo funciona bem agora.



0

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/.htaccesspara servidor apache

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

nginx.conf.samplepara 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.


Qualquer ajuda magento.stackexchange.com/q/296715/57334 obrigado @Bilal Usean
zus 26/11
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.