Nginx 二级目录单页应用的正确配置方式
今天配置了一个 Nginx 的二级目录单页应用,搞了好久才配置好,记录一下。
正确的配置方式示例:
# 子应用
location /subapp/ {
alias /opt/app/subapp/;
index index.html;
try_files $uri /subapp/index.html;
}
# 根应用
location / {
root /opt/app/web;
index index.html index.htm;
try_files $uri /index.html;
}
坑1: 使用 alias
而不是 root
Nginx 的 root 会把 location 的匹配部分也拼接进去,所以访问:
https://yourdomain/subapp/
实际会去找:
/opt/app/subapp/subapp/index.html
这就多了一层 subapp
目录,通常会 404。
注意 alias 最后必须加 /
。
坑2: try_files 地址要写 /subapp/index.html
之前写的 /index.html
让我误以为是被 /
根应用拦截了,实际上是找错 html 了。