Re: Заглушка вместо отсутствующей картинки.

Алексей Григорьев aleksey.grigoriev at gmail.com
Wed Oct 30 14:08:43 UTC 2013


Сегодня читал мануал и обнаружил интересную конструкцию, которая Вам
поможет:

location /images/ {
    try_files $uri /images/default.gif;
}

location = /images/default.gif {
    expires 30s;
}

Если нужный файл внутри /images/ не найден - загружается
/images/default.gif;

Более подробное описание:
http://nginx.org/ru/docs/http/ngx_http_core_module.html#try_files


29 октября 2013 г., 0:34 пользователь Maxim Dounin <mdounin at mdounin.ru>написал:

> Hello!
>
> On Mon, Oct 28, 2013 at 05:58:26AM -0400, Vipper wrote:
>
> > Спасибо за пояснения.
> > Сделал так:
> > location ^~ /photos/ {
> >       error_page 404 /photos/no_photo.gif;
> >       log_not_found off;
> > }
> >
> > location = /photos/no_photo.gif {
> >       expires max;
> > }
> >
> > Если писать location /photos/  то не работает.
> >
> > Поясните мне пожалуйста последний момент.
> > Почему при одном обращении к несуществующей картинке в access лог пишутся
> > ДВЕ записи? Если разрешить error лог, то и туда тоже.
> > Я понять этого не могу. При этом картинка подменяется как положено.
>
> Если в access log'е две записи - значит браузер сделал два
> запроса.  Почему так - отдельный вопрос, требующий разбирательств
> в первую очередь с браузером.  E.g. он мог сделать это, если
> картинка используется на странице в двух местах, и из-за 404-го
> кода ответа он пошёл на сервер ещё раз.  Можно попробовать сказать
>
>     error_page 404 = /photos/no_photo.gif;
>
> (доблен модификатор "="), тогда браузеру заглушка уйдёт с кодом
> 200.  Но это не то, чтобы очень правильный подход - лучше код
> ошибки в подобных ситуациях по возможности сохранять, это делает
> мир лучше.
>
> --
> Maxim Dounin
> http://nginx.org/en/donation.html
>
> _______________________________________________
> nginx-ru mailing list
> nginx-ru at nginx.org
> http://mailman.nginx.org/mailman/listinfo/nginx-ru
>



-- 
AG
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.nginx.org/pipermail/nginx-ru/attachments/20131030/ec839761/attachment.html>


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