我正在尝试重写GET /
为/srv/app/static/index.html
. 我很接近这几个指令:
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
,我很高兴。
但是,当 I 时GET /
,nginx 返回 404。检查日志,我看到它正在尝试访问文件/srv/app/static/index.htmlindex.html
(原文如此)。为什么它会index.html
在给出的路径上添加额外的东西alias
?
如果我将该指令更改为
location = / {
index index.html;
alias /srv/app/static/;
}
错误日志显示它正在尝试访问/srv/app/stati
(原文如此,它从 . 中删除了最后一个c
字符/srv/app/static
。这是怎么回事?
编辑:
我可以像这样得到我想要的行为rewrite
:
location = / {
rewrite (.*) /static/index.html;
}
但是,我认为alias
它更具性能和惯用性。