Quantcast
Channel: Nginx Forum - Nginx Mailing List - Russian
Viewing all articles
Browse latest Browse all 3102

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

$
0
0
Добрый день.

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

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

Viewing all articles
Browse latest Browse all 3102

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>