Ответ 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 для файлов. После того, как я установил правильное разрешение, все работает нормально.
Я надеюсь, что это дает некоторую идею.