【发布时间】:2021-03-08 18:41:53
【问题描述】:
我有两台登台/测试服务器,每台服务器在 nginx 上托管一个 Angular 应用程序,比如 app1 和 app2。一切都那么简单:
http://<ip for app1 server>/ => app1
http://<ip for app2 server>/ => app2
现在我想将这两个应用程序都托管在一个服务器上。比如:
http://<ip for single server>/app1/ => app1
http://<ip for single server>/app2/ => app2
我想在不更改我的 Angular 应用程序的基础 href 的情况下实现这一点(我知道我可以通过使用 --baseHref=... option 更改它来做到这一点。但因为我不知道我的应用程序何时托管进入生产阶段,我想成为baseHref 不可知论者......
所以我写了一些可能很幼稚的东西:
location /app1/ {
root /opt/myapps/;
}
location /app2/ {
root /opt/myapps/;
}
在服务器上,我将我的网站放入文件系统上的/opt/myapps/app1 和/opt/myapps/app2。
但是,例如,当我尝试打开 app1 时,没有任何效果,因为我只获得了 index.html(来自 http://\<ip for single server>/app1/)。资产不会被加载,因为它们是从服务器根目录而不是从 app1 子目录获取的(例如 http://\<ip for single server>/favicon.ico 而不是 http://\<ip for single server>/app1/favicon.ico)
这可能吗?我怎样才能做到这一点?
【问题讨论】:
标签: angular nginx nginx-location