使用HTML5模式配置多个AngularJS2项目的Nginx配置

使用HTML5模式配置多个AngularJS2项目的Nginx配置,angular,nginx,location,html5mode,Angular,Nginx,Location,Html5mode,我的Nginx配置有问题。我有两个单独的angularjs2项目,它们应该与一个nginx实例一起工作。 应用程序分为两个文件夹/admin和/webapp 现在我要做的是,当我调用mydomain.com时,它应该在/webapp中打开应用程序。如果我调用mydomain.com/admin,它应该会打开admin应用程序(这也是一个angularj2应用程序) 到目前为止,我尝试了以下内容: server { listen 80; server_name localho

我的Nginx配置有问题。我有两个单独的angularjs2项目,它们应该与一个nginx实例一起工作。 应用程序分为两个文件夹/admin和/webapp

现在我要做的是,当我调用mydomain.com时,它应该在/webapp中打开应用程序。如果我调用mydomain.com/admin,它应该会打开admin应用程序(这也是一个angularj2应用程序)

到目前为止,我尝试了以下内容:

server {
  listen       80;
  server_name  localhost;
  root /usr/share/nginx/html/webapp;    
  index index.html index.htm;

  location / {
    index index.html index.htm;
    try_files $uri /index.html;
  }

  location /admin/ {
    alias /usr/share/nginx/html/admin/;
    try_files /admin/$uri /admin/index.html;
  }
}
我希望能得到帮助。提前谢谢

试试看:

root /usr/share/nginx/html/webapp;    
index index.html index.htm;

location / {
    try_files $uri $uri/ /index.html;
}

location /admin {
    root /usr/share/nginx/html;
    try_files $uri $uri/ /admin/index.html;
}
root
指令优于
alias
指令。有关详细信息,请参阅

index
指令是继承的,不需要重复


$uri/
术语将鼓励
nginx
/
附加到目录的uri,以便
索引
指令正常工作。我还更正了您的一些
try\u文件
术语。有关详细信息,请参阅。

我已尝试从try\u文件中删除/admin/并将其附加到根目录中的“/admin”位置,但这不起作用。你知道为什么吗?
/admin/index.html
在哪里?我的答案假设它位于
/usr/share/nginx/html/admin/index.html
$uri
变量已经包含了
/admin/
,因此它不应该出现在
root
语句中。是的,它位于那里,文件结构如下所示:/usr/share/nginx/html/-admin-webapp