Добрый день.
Хочу ресайзить картинки, используя ссылки вида
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, даже если в аргументах передавал другое значение.
подскажите плз как исправить ситуацию?