Восстановление проблем с изображениями кэша каталога


19

Я делаю процесс миграции с Magento 1.9.2.4 на Magento 2.1.6, после завершения миграции я перемещаю медиа-папку M1 в pub / media M2.

Теперь проблема в том, что некоторые изображения не генерируются в папке catalog / Cache

Например, ниже изображения идут к 404 не найдено

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

Мне действительно нравится просто удалить папку кэша каталога и загрузить страницу снова, но все равно она переходит в поврежденное изображение.

На моей странице 50% неработающих изображений

введите описание изображения здесь

можете поделиться обходным путем, чтобы исправить эту проблему?


Привет, Билал, можешь ли ты мне помочь и предложить magento.stackexchange.com/questions/283277/…
K

Ответы:


29

Вы должны попробовать использовать команду изменения размера изображения, чтобы предварительно сгенерировать все необходимые изменения размера.

php bin/magento catalog:image:resize

Эта команда получает все размеры изображений, которые были определены в XML-теме, и создает изображения в соответствующих папках.

Вы также можете проверить документацию команды для получения дополнительной информации http://devdocs.magento.com/guides/v2.1/frontend-dev-guide/themes/theme-images.html


5
К вашему сведению - эта команда работает абсолютно вечно в магазине любого размера. Мы видели более 17 часов на недавнем пробеге. В других случаях его нужно было проводить в выходные дни. См .: github.com/magento/magento2/issues/8145
Леланд,

у меня была та же проблема, я запускаю этот cmd, показывая изображения, но после сброса кеша все изображения снова ломаются и нет изображений в папке кеша
imtiazau

1
Если вы используете php bin / magento catalog: image: resize, то это займет более 1 дня, и любой другой лучший метод?
Soundararajan м

@ Алекс Динка, не могли бы вы помочь мне в этом magento.stackexchange.com/questions/283277/…
Нагараджу К

Я получаю изображения Magento 2 из Magento 1 с помощью snipboard.io/JZ2bQR.jpg , как решить проблему с кешем? @Alex
Gem

0

У меня также была эта проблема, и даже генерация образов командной строки, упомянутая выше, не работала. Кажется, Magento кеширует информацию о том, что миниатюра создана, и даже стандартная очистка кеша Magento (как из командной строки, так и из панели администратора) не удаляет эту информацию из кеша.

Я удалил все содержимое каталогов вручную, и это помогло:

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

.. и так далее. Тогда эскизы изображений должны генерироваться корректно «по запросу» при просмотре сайта.


0

У меня была точно такая же проблема, но с Magento 2.3.2

Для меня это были миниатюрные изображения продуктов, которые имели неправильный путь кеша. Изображения товаров и категорий были правильными, но URL-адрес недействителен и отображал заполнитель изображения std Magento.

Я использовал собственную тему.

При использовании SHH "php bin / magento catalog: images: resize" - что происходило? Изображения создавались с использованием темы Luma etc / view.xml вместо пользовательской темы etc / view.xml.

Проблема. При просмотре моей пользовательской темы в браузере, который использует изображения разных размеров, чем тема Luma, Magento не может найти изображения и выдает ошибку 404.

Исправление

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

Мне потребовалась неделя, чтобы выяснить, как это исправить, но теперь все работает нормально.


0

Пожалуйста, посмотрите ваш конфиг в используемой вами теме и убедитесь, что конфиг в вашем исходном хранилище совпадает с конфигом в вашей цели. Вы можете сослаться на это: https://devdocs.magento.com/guides/v2.3/frontend-dev-guide/themes/theme-images.html

Затем запустите:

php bin / magento каталог: изображения: изменить размер

Позвольте мне знать, если это помогает!


0

Ответ 20 ноября 2019 года:

Регенерация кэша изображений по команде - нереальное решение для всех, потому что это займет много времени для некоторого веб-сайта, на котором много продуктов. Кроме того, я столкнулся с некоторыми проблемами, такими как, если мы создадим образ кэша из CLI, он будет работать. Когда мы очищаем изображения от администратора или удаляем кэшированное изображение вручную, тогда при загрузке страницы он не будет снова генерировать изображение кэша, поэтому мне нужно снова и снова запускать команду регенерации. На мой взгляд, лучшее решение - создать кеш изображений при загрузке страницы.

Поток по умолчанию

Поток Magento по умолчанию - всякий раз, когда он загружает изображение (медиа), он всегда проходит через запрос к pub / get.php и проверяет, существует изображение или нет. Если он не существует, он сгенерирует новое кэшированное изображение. Если он существует, он вернет этот путь. Поэтому по умолчанию изображение должно генерироваться при загрузке страницы.

Мы можем проверить эту логику в следующих файлах

pub/media/.htaccessдля сервера Apache

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

nginx.conf.sampleдля сервера nginx

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

Как проверить работает эта логика или нет?

Поместите echo "test";exit;в начало файла pub / get.php и загрузите любой кешированный медиа-URL, он должен напечатать test. В противном случае что-то не так в конфигурации вашего сервера.

Для меня всякий раз, когда я удаляю каталог кэша каталога (rm -rf pub / media / catalog / product / cache / *) после этого, когда мы загружаем страницу, он не генерирует новое кэшированное изображение, и он переходит на страницу 404, не найденную и также это никогда не достигает get.php . Затем я заметил, что у многих папок были неправильные разрешения, отличающиеся от 755 для папок и 644 для файлов. После того, как я установил правильное разрешение, все работает нормально.

Я надеюсь, что это дает некоторую идею.


Любая помощь magento.stackexchange.com/q/296715/57334 спасибо @Bilal Usean
Zus
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.