Re: resize image как задать переменную, если ее нет в аргументах
Maxim Dounin
mdounin at mdounin.ru
Wed Jun 17 02:36:39 UTC 2015
Hello!
On Tue, Jun 16, 2015 at 07:53:32PM -0400, cilrill wrote:
[...]
> пытался вставить проверку вида
>
>
> 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, даже если в аргументах передавал другое значение.
>
> подскажите плз как исправить ситуацию?
Не надо пытаться установить переменную $arg_q, от этого будут
сплошные проблемы и никакого счастья.
Правильно как-то так:
set $q 75;
if ($arg_q) {
set $q $arg_q;
}
image_filter_jpeg_quality $q;
Или даже так:
map $arg_q $q {
default 75;
~[0-9]+ $arg_q;
}
image_filter_jpeg_quality $q;
--
Maxim Dounin
http://nginx.org/
Подробная информация о списке рассылки nginx-ru