nginx image_filter 调整图像大小并将图像转换为 webp

问题描述 投票:0回答:1

我想通过 nginx 中的 image_filter 提供调整大小和转换后的 png/jpg/jpeg 图像,以提供 webp 格式的图像。是否有任何选项可以通过 try_files 重写路径或其他方式来执行此操作,而无需安装其他 nginx 扩展?

set $width "-";
      
if ($arg_w != '') { 
    set $width $arg_w; 
}

location ^~ /common/images/\.*\.(png|jpeg|jpg) {
    add_header X-Nginx-Image Resized;
    image_filter resize $width -;
    expires 12M;
    add_header Cache-Control "public";
}
nginx resize webp responsive-images
1个回答
0
投票

我找到了一个适合我的解决方案,效果很好。 因此,如果我在 webp 中转换了图像,它会调整大小并服务器,否则,它会调整我的基本图像的大小而不进行转换。

set $width "-"; 

if ($arg_w != '') { 
    set $width $arg_w; 
}

location ~* "^(?<path>.+)\.(png|jpeg|jpg)$" { 
    try_files $path$webp_ext $path$file_ext =404; 
    add_header X-Nginx-Image Resized; 
    image_filter resize $width -; 
    expires 12M; 
    add_header Cache-Control "public"; 
}
© www.soinside.com 2019 - 2024. All rights reserved.