Html 如何设置NGINX以部署动态多个单页应用程序?
我的目标是: 使用nginx作为前端服务器,我有多个HTMLs和单页应用程序(作为HTML文件),其他静态文件将上载到CDN(如.js/.css/.img) 那么,如何设置nginx config一次,解决所有动态SPAHtml 如何设置NGINX以部署动态多个单页应用程序?,html,nginx,Html,Nginx,我的目标是: 使用nginx作为前端服务器,我有多个HTMLs和单页应用程序(作为HTML文件),其他静态文件将上载到CDN(如.js/.css/.img) 那么,如何设置nginx config一次,解决所有动态SPA server { listen 80; server_name example.com; rewrite ^(/.*)\.html(\?.*)?$ $1$2 permanent; rewrite ^/(.*)/$ /$1 permanent;
server {
listen 80;
server_name example.com;
rewrite ^(/.*)\.html(\?.*)?$ $1$2 permanent;
rewrite ^/(.*)/$ /$1 permanent;
root /opt/vipkid/ngTest;
expires -1;
location / {
try_files $uri/index.html $uri.html $uri/ $uri =404;
}
location ~* ^/(?<single>.+)/.*$ {
try_files $uri/index.html $uri.html $uri/ $uri /$single/index.html =404;
}
}
使用上面的配置,我可以达到:
- Go example.com;Render:/index.html右键
- 转到example.com/dira;Render:/dira/index.html右键
- 转到example.com/dira/suba;Render:/dira/suba.html右键
- 转到example.com/dirb;Render:/dirb/index.html右键
- 转到example.com/dirb/single-route;Render:/dirb/index.html右键
- Go example.com/dirb/single-route/sub;渲染:404错误
那么,如何配置ningx来解决这个问题呢?谢谢~是
$single
应该是单个路径元素。您可以尝试使用排除/
的字符类,例如:^/(?[^/]+)/
@RichardSmith-Thx,它可以工作
├── dira
│ ├── index.html
│ └── suba.html
├── dirb
│ └── index.html
└── index.html