我想通过 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";
}
我找到了一个适合我的解决方案,效果很好。 因此,如果我在 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";
}