在我的应用程序中,我希望位置“ /”返回静态index.html文件,我希望“ / static”从文件夹提供静态文件,并且我希望所有其他请求返回404 NOT FOUND。稍后,我将所有其他请求重定向到WSGI服务器。
目前这是我的配置:
# Dev server.
server {
listen 1337;
charset UTF-8;
location / {
rewrite ^ static/index_debug.html break;
}
location /static {
alias /home/tomas/projects/streamcore/static;
}
}
静态文件夹运行正常,但是“ /”返回404 NOT FOUND。我也尝试过:
alias /home/tomas/projects/streamcore/static/index_debug.html;
在位置块中,但是返回500 INTERNAL SERVER ERROR。似乎alias
不喜欢单个文件。另外,我尝试了:
try_files static/index_debug.html;
但这阻止了服务器从错误“ try_files指令中的参数数目无效”开始。显然,try_files
实际上要求您尝试多个文件,这不是我要查找的行为。
所以我的问题是:如何配置位置块以始终返回静态文件?
编辑:我从其他答案中alias
确实应该接受一个文件作为参数,所以我尝试了:
location = / {
alias /home/tomas/projects/streamcore/static/index_debug.html;
}
但是我仍然只收到500 INTERNAL SERVER ERROR。“ /”请求的错误日志显示:
[警报] 28112#0:* 7“ /home/tomas/projects/streamcore/static/index_debug.htmlindex.html”不是目录
为什么要尝试打开“ index_debug.htmlindex.html”?我不在index
任何地方使用指令。
@ceejayoz:尝试与
—
Hubro
location =/
我一起获得404 NOT FOUND的建议,并location /
得到500 INTERNAL SERVER ERROR。
如果我没记错的话,您就错过了Index指令……任何网络服务器都会一直在寻找索引文件,并提供根URI(/),我认为您可以通过添加以下内容来覆盖它:
—
Martino Dino
location / { return 404; }
@MartinoDino:为什么需要它?在哪
—
Hubro
location = / {Index /home/tomas/projects/streamcore/static/index_debug.html;}
try_files static/index_debug.html static/index_debug.html;