max_shane
@max_shane
Javascript / Node.js dev

Как настроить root в nginx в моем случае?

Пол ночи безуспешно пытался нагуглить причину по которой у меня не работает данная конфигурация (сервер отдает 404 при запросе на /):

...
root /home/max/www/project;

location / {
    root /pages;
    index index.html;
}
...


Сам конфиг корректен. Ошибка логическая.
Если я укажу root, который по умолчанию, полностью до папки где у меня лежит index.html ( $root/pages ) то все работает.
Но мне так не нужно. Для html файлов у меня отдельная директория /pages, потому что я не хочу чтобы у меня папки [css,img,js,] лежали на одном уровне с файлами html.
И поэтому я хочу оставить корневой директорией проекта именно /project чтобы иметь доступ ко всем статическим ресурсам от корня.
Вообще структура папки /project выглядит так:
/css
/js
/img
/pages

Хелпаните пожалуйста!
  • Вопрос задан
  • 706 просмотров
Решения вопроса 2
karabanov
@karabanov
Системный администратор
Указывая root в location ты его переопределяешь в рамках location, на уровне server и в других location (если в них нет переопределений) root останется прежний. Что тебя не устраивает?

root /home/max/www/project;

location / {
    root /home/max/www/project/pages;
    # [...]
}

# можешь хоть для каждого location переопределить root,
# но нет нужды в этом в твоём случае - достаточно переопределить root
# только для location / { ... }

PS
Про root и alias

Pitfalls and Common Mistakes

PPS
root /pages; - означает искать файлы в директории pages, которая размещена в корне диска.
Ответ написан
Lynn
@Lynn
nginx, js, css
Можно как-то так:
root /home/max/www/project;

location / {
    root /home/max/www/project/pages;
    index index.html;
}

location /css/ {}
location /js/ {}
location /img/ {}
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы