resize image как задать переменную, если ее нет в аргументах
cilrill
nginx-forum at nginx.us
Tue Jun 16 23:53:32 UTC 2015
Добрый день.
Хочу ресайзить картинки, используя ссылки вида
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, даже если в аргументах передавал другое значение.
подскажите плз как исправить ситуацию?
Posted at Nginx Forum: http://forum.nginx.org/read.php?21,259674,259674#msg-259674
Подробная информация о списке рассылки nginx-ru