Назад |
Перейти на главную страницу
nginx: парсить UA и try_files по частям UA
Что дано:
- версия nginx: nginx / 1.9.3;
- / var / www / site / js /site.chrome.js - код, специфичный для хрома;
- / var / www / site / js /site.firefox.js - код, специфичный для firefox;
- site.chrome.js и site.firefox.js выбираются на стороне браузера в зависимости от того, в каком браузере выполняется код;
- UA: Mozilla / 5.0 (X11; Linux x86_64) AppleWebKit / 537.36 (KHTML, как Gecko) Chrome / 44.0.2403.155 Safari / 537.36
Проблема: вместо того, чтобы указывать в браузере, какие два файла JS должны быть загружены, я хотел бы выгрузить эту задачу на сервер nginx, чтобы
- браузер просто указывает на URL-адрес, например http://server.com/js/site.js
- nginx анализирует UA, экстракты Операционные системы, имя браузера, и это версия и ищет site.js в следующей структуре каталогов:
js
|
+-site.js
|
+-linux
|
+-chrome
| |
| +-site.js
| |
| +-44
| | |
| | +-site.js
В js / site.js следует рассматривать как запасной вариант, что означает, что если nginx не сможет найти подходящий site.js вниз по дереву он использует файл js / site.js.
Учитывая вышеупомянутый UA, nginx должен искать site.js, выполнив следующие действия:
- js / Linux / Chrome / 44 / site.js
- js / linux / chrome / site.js
- js / linux / site.js
- js / site.js
Вопросы следующие:
- Имеет ли вообще какой-либо смысл такой способ организации файлов, специфичных для браузера, в дереве каталогов, и если да ...
- Можно ли реализовать этот подход на сервере nginx;