Я пытаюсь переписать GET /
в /srv/app/static/index.html
. Я рядом с этими несколькими директивами:Как nginx конструирует пути к файлу в блоке местоположения?
root /srv/app/static;
location /static {
alias /srv/app/static;
}
location =/{
alias /srv/app/static/index.html;
}
Так что, когда я GET /static
, Nginx служит файл на /srv/app/static/index.html
, и я счастлив.
Но, когда я GET /
, nginx возвращает 404. Проверка журнала, я вижу, он пытается получить доступ к файлу /srv/app/static/index.htmlindex.html
(sic). Почему он накладывает дополнительные index.html
на путь, указанный в alias
?
Если изменить эту директиву
location =/{
index index.html;
alias /srv/app/static/;
}
журнал ошибок показывает, что он пытается получить доступ к /srv/app/stati
(так, он удаляет окончательный c
символ из /srv/app/static
Что здесь происходит
Edit:.?
Я могу получить поведение, которое я хочу, используя rewrite
следующим образом:
location =/{
rewrite (.*) /static/index.html;
}
Но, я думаю, alias
более совершенен и идиоматичен.