使用 HTML5Mode 的多个 AngularJS2 项目的 Nginx 配置

Nginx config with multiple AngularJS2 Projects using HTML5Mode

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

现在我要做的是,当我调用 mydomain.com 时,它应该在 /webapp 中打开应用程序。如果我调用 mydomain.com/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 指令。有关详细信息,请参阅 this document

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

$uri/ 条款将鼓励 nginx/ 附加到目录的 URI,以便 index 指令正常工作。我还更正了您的一些 try_files 条款。有关详细信息,请参阅 this document