【发布时间】:2017-08-04 08:56:40
【问题描述】:
我已将 NGINX 设置为 docker 容器的虚拟网络的反向代理,该虚拟网络将自身作为容器运行。其中一个容器为基于 Angular 4 的 SPA 提供 HTML5 模式下的客户端路由。
应用程序被映射到 NGINX 上的位置 /,以便 http://server/ 将您带到 SPA 主屏幕。
server {
listen 80;
...
location / {
proxy_pass http://spa-server/;
}
location /other/ {
proxy_pass http://other/;
}
...
}
在 SPA 中导航时,Angular 路由器会将 URL 更改为 http://server/home 或其他路由。
但是,当我尝试直接访问这些 URL 时,会返回 404。这个错误源自spa-server,因为它显然没有这些路由的任何内容。
我发现的配置 NGINX 以支持此场景的示例始终假定 SPA 的静态内容直接从 NGINX 提供,因此try_files 是一个可行的选择。
如何将任何未知的 URL 转发到 SPA 以便它自己处理?
【问题讨论】: