Welcome! Log In Create A New Profile

Advanced

resize image как задать переменную, если ее нет в аргументах

June 16, 2015 07:53PM
Добрый день.

Хочу ресайзить картинки, используя ссылки вида
hostname/img.png?s=100&q=20

где hostname/img.png - путь к оригинальной картинке а два аргумента s и q - ширина и качество преобразованной картинки


работает следующая конфигурация.

location ~ ^/(.*\.(?:jpg|gif|png))$ {
alias /home/$host/$1;
image_filter resize $arg_s -;
image_filter_jpeg_quality $arg_q;
access_log /var/log/nginx/access.img.log;
}

но как обрабатывать ссылки вида hostname/img.png?s=100 без указания явно аргумента отвечающего за качество картинки?

пытался вставить проверку вида


location ~ ^/(.*\.(?:jpg|gif|png))$ {
alias /home/$host/$1;
if ( $arg_q = "") {
set $arg_q 75;
}
image_filter resize $arg_s -;
image_filter_jpeg_quality $arg_q;
access_log /var/log/nginx/access.img.log;
}

при попадании в location - ругается, что используется необъявленная переменная arg_q и все рушится.
пытался задать переменную вне location -

set $arg_q 75;

image_filter_jpeg_quality после этого в локейшене выполняется с параметром 75, даже если в аргументах передавал другое значение.

подскажите плз как исправить ситуацию?
Subject Author Posted

resize image как задать переменную, если ее нет в аргументах

cilrill June 16, 2015 07:53PM

Re: resize image как задать переменную, если ее нет в аргументах

Maxim Dounin June 16, 2015 10:38PM

Re: resize image как задать переменную, если ее нет в аргументах

cilrill June 17, 2015 02:03AM

Re: resize image как задать переменную, если ее нет в аргументах

Maxim Dounin June 17, 2015 09:06AM

Re: resize image как задать переменную, если ее нет в аргументах

cilrill June 17, 2015 03:59PM



Sorry, only registered users may post in this forum.

Click here to login

Online Users

Guests: 206
Record Number of Users: 8 on April 13, 2023
Record Number of Guests: 421 on December 02, 2018
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready