Назад | Перейти на главную страницу

Местоположение nginx не открывает статический сайт

Моя конфигурация 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;

         }

с 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 игнорируется.