проверять заголовки браузера и отдавать поддерживаемый формат изображений (авиф и webp) , если изображения есть в таком формате
location /assets/ {
root /home/admin/web/server/public_html/static;
location ~* ^.+\.(pdf|gif|bmp|ico|svg|ttf|woff|woff2)$ {
expires max;
}
location ~* ^.+\.(jpg|jpeg|png|webp|avif)$
{
if ( $http_accept ~* avif ) {
set $avif "A";
}
if ( $http_accept ~* webp ) {
set $webp "W";
}
if ( $request_filename ~ (.+)\.(png|jpe?g)$ ) {
set $file_without_ext $1;
}
if ( -f $file_without_ext.avif ) {
set $avif "${avif}E";
}
if ( -f $file_without_ext.webp ) {
set $webp "${webp}Y";
}
if ( $avif = AE ) {
add_header Vary Accept;
rewrite ^(.+)\.(png|jpe?g)$ $1.avif break;
}
if ( $webp = WY ) {
add_header Vary Accept;
rewrite ^(.+)\.(png|jpe?g)$ $1.webp break;
}
}
}
Вот этот код (только рут уберите, я его добавил, чтобы брать изображения с сервера) рекомендую использовать везде для оптимизации изображений. Вместо того, чтобы городить на фронте <picture> на самом nginx проверяете заголовок и наличие файла и отдаете более оптимизированный формат )
Обсуждают сегодня