У меня проблемы с пониманием того, как показывать изображения на Magento 2 с помощью NGINX. Все работает правильно, пока в кэше мультимедиа Magento нет файла JPG и его необходимо генерировать с помощью
location @media { try_files $uri $uri/ /get.php$is_args$args; }
. Когда я добавил этот блок #webp в конфигурацию nginx, он больше не обрабатывается ниже этих ## изображений block, и если я снова удалю #webp block, медиа-кеш будет сгенерирован с @media, как и должно быть по умолчанию.
Моя цель - обслуживать изображения webp (сгенерированные отдельным скриптом в исходное местоположение jpg / png, только файл разницы extension), и когда в папке кэша мультимедиа нет изображения, оно будет сгенерировано, как Magento по умолчанию
Вопрос в том, как объединить эти два изображения #webp и ## ...
location /media/ {
#webp
location ~* ^(/media/.+)\.(png|jpe?g)$ {
set $base $1;
set $webp_uri $base$webp_suffix;
set $webp_old_uri $base.$2$webp_suffix;
set $root "/var/www/magento/htdocs/pub/";
root $root;
expires 60s;
add_header Cache-Control "public";
add_header Vary Accept;
if ( !-f $root$webp_uri ) {
add_header X_WebP_SP_Miss $root$webp_uri;
}
try_files $webp_uri $webp_old_uri $uri $uri/ @media ;
}
# images css js (default magento block)
location ~* \.(jpg|jpeg|png|webp|gif|svg|js|css|ico|txt)$ {
expires max;
add_header Cache-Control "public";
try_files $uri $uri/ @media;
}
## fonts
location ~* \.(swf|eot|ttf|otf|woff|woff2)$ {
expires max;
add_header Cache-Control "public";
try_files $uri $uri/ @media;
}
try_files $uri $uri/ @media;
}
location @static { rewrite /static/(version\d*/)?(.*)$ /static.php?resource=$2 last; }
location @media { try_files $uri $uri/ /get.php$is_args$args; }