ФорумРазработкаУстановка и администрирование ПОВебсервер → Nginx, отдавать default.jpg, если нет запрашиваемой картинки.

Nginx, отдавать default.jpg, если нет запрашиваемой картинки.

  • mario

    Сообщения: 6067 Репутация: N Группа: Джедаи

    Spritz 15 июля 2011 г. 15:04

    Есть location
        location ~* ^/(i|img)/ {
           expires 7d;
       }

    Там есть картинки, как сделать, так что бы если запрашиваемого файла не существует, то отдавать default.jpg?
    Попробывал делать так:
    location ~* ^/(i|img)/ {
     try_files      $uri  $uri/default.jpg  =404;
     expires 7d;
    }

    Но не чего не вышло, т.к. в $uri содержится полный путь с названием файла.
    Так же пробовал подставлять $realpath_root но что то не так.
  • phpdude

    Сообщения: 26646 Репутация: N Группа: в ухо

    Spritz 15 июля 2011 г. 15:51, спустя 46 минут 38 секунд

    mario, блеядь! я же сказал чо делать :-) Не веришь дуду - сгоришь в адуду!

    к слову
    Так же пробовал подставлять $realpath_root но что то не так.

    $realpath_root, эта переменная равна значению директивы root для текущего запроса, при этом все символические ссылки преобразованы в реальные путь;


    зубри блядь http://sysoev.ru/nginx/docs/http/ngx_http_core_module.html#variables

    там нет ничего нужного тебе - делай как я сказал да и все :-) будет работать 100%
    Сапожник без сапог
  • mario

    Сообщения: 6067 Репутация: N Группа: Джедаи

    Spritz 15 июля 2011 г. 15:59, спустя 8 минут 35 секунд


    mario, блеядь! я же сказал чо делать :-) Не веришь дуду - сгоришь в адуду!

    к слову
    Так же пробовал подставлять $realpath_root но что то не так.

    $realpath_root, эта переменная равна значению директивы root для текущего запроса, при этом все символические ссылки преобразованы в реальные путь;


    зубри блядь http://sysoev.ru/nginx/docs/http/ngx_http_core_module.html#variables

    там нет ничего нужного тебе - делай как я сказал да и все :-) будет работать 100%
    бля не люблю я регэкспы, т.к. готовить их нихера не умею )))
    Спустя 119 сек.
    $realpath_root, эта переменная равна значению директивы root для текущего запроса, при этом все символические ссылки преобразованы в реальные путь;

    ну так, на сколько я понимаю, то переменна $realpath_root
    в локейшене location ~* ^/dirname-test/, будет равна $document_root/dirname-test/ ?
  • phpdude

    Сообщения: 26646 Репутация: N Группа: в ухо

    Spritz 15 июля 2011 г. 16:01, спустя 1 минуту 13 секунд

    в локейшене location ~* ^/dirname-test/, будет равна $document_root/dirname-test/ ?

    неправильно понимаеш, перечитай сто раз описание переменной
    Сапожник без сапог
  • mario

    Сообщения: 6067 Репутация: N Группа: Джедаи

    Spritz 15 июля 2011 г. 19:48, спустя 3 часа 47 минут 47 секунд

    В общем спасибо дуду за регэксп. Пришлось заюзать реврайт.
        location ~* ^/destination/img/ {
    expires 1d;
    if (!-e $request_filename) {
    rewrite ^/(.*)/[^/]+$ /$1/default.png redirect;
    }
    }
  • Sinkler

    Сообщения: 7958 Репутация: N Группа: в ухо

    Spritz 15 июля 2011 г. 21:31, спустя 1 час 42 минуты 36 секунд

    и все-таки ты ооочень не любишь регулярки)
  • mario

    Сообщения: 6067 Репутация: N Группа: Джедаи

    Spritz 15 июля 2011 г. 21:34, спустя 2 минуты 33 секунды


    и все-таки ты ооочень не любишь регулярки)
    не то что бы я их не люблю. Просто я никак их не выучу )))
  • Sinkler

    Сообщения: 7958 Репутация: N Группа: в ухо

    Spritz 15 июля 2011 г. 21:34, спустя 47 секунд

    я все-таки думаю, что это как практическая математика - надо набивать руку долго
  • mario

    Сообщения: 6067 Репутация: N Группа: Джедаи

    Spritz 15 июля 2011 г. 21:39, спустя 4 минуты 12 секунд


    я все-таки думаю, что это как практическая математика - надо набивать руку долго
    а мне все же кажется, что это как теоретическая геометрия — нужно знать базу, что бы оперировать какими либо сущностями.
    Спустя 43 сек.
    т.е. как в геометрии, если не знаешь какую либо теорему, то не сможешь доказать что либо связанное с этой теоремой )
  • Sinkler

    Сообщения: 7958 Репутация: N Группа: в ухо

    Spritz 15 июля 2011 г. 21:41, спустя 2 минуты 5 секунд

    нужно знать базу, что бы оперировать какими либо сущностями

    ну мне той таблички с регулярками, запощеной три года назад здесь, хватает :D
  • mario

    Сообщения: 6067 Репутация: N Группа: Джедаи

    Spritz 15 июля 2011 г. 21:52, спустя 11 минут 11 секунд

    покажи )))
  • Sinkler

    Сообщения: 7958 Репутация: N Группа: в ухо

    Spritz 15 июля 2011 г. 21:55, спустя 3 минуты 27 секунд

    ну
  • technobulka

    Сообщения: 4540 Репутация: N Группа: Джедаи

    Spritz 16 июля 2011 г. 2:09, спустя 4 часа 13 минут 47 секунд

    mario, мне помог разобрать в регулярках этот сайтик… там все наглядно, а еще справа минисправочник и куча примеров, но примеры так себе))
    Высокоуровневое абстрактное говно
  • lolcat

    Сообщения: 383 Репутация: N Группа: Кто попало

    Spritz 16 июля 2011 г. 16:16, спустя 14 часов 6 минут 48 секунд

    Спасибо топикстартеру, охуенную идею подал.
  • phpdude

    Сообщения: 26646 Репутация: N Группа: в ухо

    Spritz 16 июля 2011 г. 16:19, спустя 2 минуты 51 секунду

    lolcat, не за что, ваш КЭП!
    Сапожник без сапог

Пожалуйста, авторизуйтесь, чтобы написать комментарий!