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