以下是我想要实现的目标:
- 所有请求
/api/...
都应定向到反向代理 - 所有请求都应
/static/...
由/html/static/pub
- 所有其他请求应从
/html/app/pub
OR 回退到/html/app/pub/index.html
/html
目前无法更改文件夹结构。
以下是我的位置块当前的样子:
root /html/app/pub/;
location /api/ {
# proxy details...
}
location ~* /static/(.*) {
try_files /html/static/pub/$1 =404;
}
location / {
try_files $uri /index.html;
}
使用此设置,可以满足要求 (1) 和 (3),但不能满足 (2)。对其中任何路径发出的任何请求/static
都会返回 HTTP 404。nginx 日志中没有错误,请求只是记录为未找到。
我尝试过许多不同的排列组合,每一种组合都至少违反了一项要求;这是我找到的最接近我想要的结果。我搜索了所有我能在谷歌上搜索到的文章(其中 90% 使用了完全相同的示例片段),但我找不到解决方案。
提前致谢。
答案1
解决了:
location ~* /static/(.*) {
root /html/static/pub/;
try_files /$1 =404;
}