Re[2]: image_filter и пустые переменные.

Михаил Монашёв postmaster at softsearch.ru
Sat Jan 26 15:54:15 UTC 2013


Здравствуйте, Maxim.

>> Если сейчас в качестве ширины будет пустая переменная, то
>> image_filter resize ширина "-";
>> не  выдаёт  изображений вообще. Хотя вроде бы пустая переменная должна
>> отключать директву, в которой она используется, если я правильно ранее
>> понял линию партии.

> Нет, ты неправильно понял.  Пустое значение является специальным 
> только там, где оно является специальным.

> E.g. если ты используешь пустую пременную в строке замены 
> какого-нибудь sub_filter'а - ничего не отключится, будет замена на 
> пустую строку.

>> Воспроизводится вот так:
>>         map $arg_width $image_width {
>>                 100     100;
>>         }
>>         
>>         location / {
>>                 image_filter resize $image_width "-";
>>         }
>> 
>> Если же добавить в map строчку
>> default "-";
>> то работает правильно (ресайза не происходит вообще).

> Директива image_filter через переменные понимает ровно то, что она 
> понимает в качестве параметров без переменных.  В остальных 
> случаях возвращается ошибка 415.

Сейчас директива
image_filter resize "-" "-";
приводит к тому, что файл записывается в image_filter_buffer и если
его не хватает, то выдаётся 415? Хотя вроде бы вообще ничего не должно
происходить, а на практике работает как image_filter test;

Можно  как-то отключить ресайз в зависимости от значения переменной? А
то если в $image_width содержится "-", то директива
image_filter resize $image_width "-";
приводит   к  тому,  что  имэдж-фильтр  всёравно  картики  через  себя
пропускает, хотя мог бы напрямую отдавать никак их не касаясь.



-- 
С уважением,
 Михаил                          mailto:postmaster at softsearch.ru



Подробная информация о списке рассылки nginx-ru