Re: Как работает try files?

Константин Ткаченко constantine на mellodesign.ru
Вт Июн 5 11:36:58 UTC 2018


5 июня 2018 г., 14:18 пользователь darksmoke <nginx-forum на forum.nginx.org>
написал:

> Добрый день
> Объясните, пожалуйста на пальцах, как работает try_files? Не как не могу
> разобраться.
>
> У мен есть
>
>     location /test {
>         alias /opt/DATA/www/mp;
>         expires -1;
>
>         set_from_accept_language $lang en ru ua;
> #       index index_$lang.html;
>         try_files /index_$lang.html /index_ua.html;
>     }
>
> В таком виде почему то не находит css и картинки. В логах
> 10.222.222.222  443     10.44.44.44     2018-06-05T14:15:50+03:00
>  forward-to -    GET
> /test/icons/diagram.svg
> HTTP/1.1        404     -       136     0.000   -
> https://domain.ru/test/ Mozilla/5.0 (X11; Ubuntu;
> Linux x86_64; rv:60.0) Gecko/20100101
> Firefox/60.0    MP_UK=b_pWrf5wxKQ_KmeFYaG2J7Zk-2XzXMh976i_p5GoAs4;
> _ga=GA1.2.606895225.1527855206  domain.ru
>
> Идея такая:
> Определяем пользовательскую локаль. Загружаем соответствующий файл. Если
> такого файла нет возращает дефолтный.
>
> Posted at Nginx Forum: https://forum.nginx.org/read.
> php?21,280036,280036#msg-280036
>
> _______________________________________________
> nginx-ru mailing list
> nginx-ru на nginx.org
> http://mailman.nginx.org/mailman/listinfo/nginx-ru


> try_files Проверяет существование файлов в заданном порядке и использует
для обработки запроса первый найденный файл
В вашем случае все ссылки будут через идти через /index_$lang.html. Чтобы
открывались ссылки с css и js должно быть, что-то вроде:

try_files $uri /index_$lang.html /index._ua.html;

Тогда, сначала проверится путь $uri - например css-файл, если его нет то
будет проверятся слдующая директива
Тут достаточно подробно расписано
https://nginx.org/ru/docs/http/ngx_http_core_module.html#try_files

-- 
С уважением, Константин!
Web-разработчик Mello <http://mellodesign.ru/>.

Best regards,
Constantine
Mello <http://mellodesign.ru/> Web developer.

+7-909-385-87-17
----------- следущая часть -----------
Вложение в формате HTML было извлечено…
URL: <http://mailman.nginx.org/pipermail/nginx-ru/attachments/20180605/94e62092/attachment.html>


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