首页 > 解决方案 > 使用 Nginx 从同一服务器提供多个 React 应用程序

问题描述

我从 Nginx 中的同一个服务器块为多个反应应用程序提供服务。我将这些路由从 nginx 转发到每个反应应用程序的 index.html,我在每个位置添加了一个 try_files:

我的 nginx 配置:

server {
  listen 80;
  location /nest/ {
        alias /Users/harikrishnan/turbolab/nest-ui/build;
        try_files $uri /index.html;
  }
  location  /nest/dataviewer/ {
     alias /Users/harikrishnan/turbolab/dataviewer/dataviewer/build;
     try_files $uri /index.html;
}
}

问题是,当我浏览到/nest/dataviewer 它时,它会重定向到/nest/. 这显然不是预期的,因为我想让每个位置都转发到index.html合适的项目。

标签: reactjsnginxnginx-location

解决方案


则表达式 (^nest/dataviewer)与以 开头的 URI 不匹配/nest/dataviewer。您缺少领先的/.

location ~* {语句缺少任何正则表达式,我很惊讶nginx接受它。

在这种情况下,您应该使用location更有效的前缀。有关详细信息,请参阅此文档

例如:

location /nest/dataviewer { ... }
location / { ... }

推荐阅读