Моя конфигурация nginx не работает должным образом. Это конфигурация моего местоположения в nginx.conf:
location / {
proxy_pass "https://localhost:9002";
}
location /app {
root /usr/local/var/www;
index index.html;
# autoindex off;
try_files $uri /index.html;
}
Когда я открываю / app / some-url http: // локальный: 9002. Я ожидаю, что он загрузит мой статический сайт
Когда я комментирую местоположение / блок, он отлично работает и открывает статический сайт.
с root
директиве, путь к статическому ресурсу вычисляется путем объединения root
значение с URI. В вашем случае URI /app/foo.css
предполагается, что он будет расположен по адресу /usr/local/var/www/app/foo.css
. Заметь app
это подкаталог внутри www
каталог. Видеть этот документ для подробностей.
Последний срок try_files
Директива - это URI, код ошибки или именованное местоположение. URI вашего статического приложения начинаются с /app
, поэтому URI по умолчанию, вероятно, должен быть /app/index.html
чтобы найти нужный файл. Видеть этот документ для подробностей.
По причинам простоты и эффективности лучшим решением будет переместить все ваши файлы в каталог с тем же именем, что и префикс URI (например, app
).
Например:
/usr/local/var/www/app/index.html
/usr/local/var/www/app/foo.js
/usr/local/var/www/app/foo.css
Конфигурация Nginx будет выглядеть так:
location /app {
root /usr/local/var/www;
index index.html;
try_files $uri $uri/ /app/index.html;
}
Если каталог, содержащий статическое приложение, не совпадает с префиксом URI, используемым для доступа к нему, вам нужно будет использовать alias
директива или другие уловки, чтобы переписать URI, чтобы root
буду работать. Видеть этот документ для подробностей.
Например:
/usr/local/var/www/index.html
/usr/local/var/www/foo.js
/usr/local/var/www/foo.css
Конфигурация Nginx будет выглядеть так:
location /app {
alias /usr/local/var/www;
index index.html;
if (!-e $request_filename) { rewrite ^ /app/index.html last; }
}
В location
и alias
оба значения должны заканчиваться /
или ни один из них не заканчивается /
. Избегать использования alias
и try_files
вместе, благодаря этому долгосрочная проблема. Видеть это предупреждение по использованию if
.
Переместите location /app
выше location /
в противном случае / имеет приоритет и location /app
игнорируется.