map directive using $default as origin

steve steve at greengecko.co.nz
Wed Aug 10 03:47:39 UTC 2016


Hi!

On 08/10/2016 03:07 PM, Dewangga Bachrul Alam wrote:
> Hello!
>
> I am using module small_light
> (https://github.com/cubicdaiya/ngx_small_light), since the module can't
> detect which browser can process webp transformation, I creating a
> simple directive on nginx to detect chrome and opera only and fallback
> the rest to jpeg/jpg.
>
> But, if the origin is not jpg (eg: png or gif), the directive transform
> it into jpg.
>
> The snippet looks like :
>
> map $http_user_agent $img_mode {
>          $default jpg;
>          ~*chrome webp;
>          ~*opera webp;
> }
>
> ... snip ...
>          location ~ \.(jpe?g|png|gif|webp)$ {
>                  root    /usr/share/nginx/html;
>                  small_light on;
>                  small_light_getparam_mode on;
>                  rewrite (?<capt>.*) $capt?$args&of=$img_mode break;
>          }
> ... snip ...
>
> Is it possible to give the $default value came from the origin file(s)?
> So the nginx didn't process png/gif into jpg if using firefox. And will
> process anything into webp if using Opera/Google Chrome.
>
> Many helps are appreciated.
> Thank you :)
>
try using default instead of $default

-- 
Steve Holdoway BSc(Hons) MIITP
http://www.greengecko.co.nz
Linkedin: http://www.linkedin.com/in/steveholdoway
Skype: sholdowa



More information about the nginx mailing list