首页 > 解决方案 > 如何使用 nginx 访问 Angular 应用程序的特定路由

问题描述

早上好

我正在尝试直接在我的角度应用程序的一页上使用我的路由中的参数访问 nginx。此应用程序不在根目录中,而是在 myapp 子目录中 http://my_serveur:my_port:/myapp/mypage/myparameter.

当我的 Angular 应用程序位于 nginx html 目录的根目录时,我找到了很多访问特定路由的解决方案。

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

但是当应用程序在子目录中时我不能这样做/usr/share/nginx/html/myapp/

我已经改变了基本的href

ng build --base-href=/myapp/

但 nginx 将应用程序重定向到根目录的 index.html。

我试过了

location /myapp/ {
     #   alias /usr/share/nginx/html/roleapp/
        try_files /myapp/$uri /myapp/$uri/ /myapp/index.html;
     }

但是 Nginx 给我发回错误 500。

你能帮我吗?

高飞

标签: angularnginx

解决方案


$uri变量已经包含了前导/,所以你的第一条try_files语句实际上应该是这样的:

try_files $uri $uri/ /roleapp/index.html;

在第二种情况下, 的值$uri已经包含/myapp/前缀,因为只有以开头的location /myapp/ { ... }块才会被输入。所以你的第二个语句应该是这样的:$uri/myapp/try_files

try_files $uri $uri/ /myapp/index.html;

有关更多信息,请参阅此文档


推荐阅读