在nginx后面反应serviceworker.js的相对路径

时间:2018-06-22 15:00:54

标签: reactjs nginx routing service-worker

所以我有一个域(company.com),它指向一个nginx反向代理。 Nginx根据路径将请求路由到不同的应用程序(在不同的内部IP上):

company.com/login company.com/dashboard company.com/api

仪表板和登录是前端反应应用程序,这些应用程序又可以从api查询。

我遇到的问题是通过nginx路由到正确的应用程序。每个端点的Nginx位置看起来像

location /login { proxy_pass http://login.internal.app/; proxy_redirect off; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Host $server_name; }

但是,由于响应(使用create-react-app)的服务工作者被设置为/serviceworker.js。对于静态文件,我认为我可以通过在"homepage": "./",中设置package.json使其相对,然后在HTML中设置基本URL来实现这一目的。 <base href="/login">。但是我不知道如何让服务工作者这样做,因此我需要将其路由到后端的正确React应用。

信息

  • 使用docker容器,并在应用程序之前使用nginx反向代理
  • 我需要在同一域中使用这些应用程序,这样我才不会出现CORS问题
  • 我需要为域设置相同的会话令牌,因此路径不是子域

帮助表示感谢:)

编辑: 经过进一步检查,我认为发生在/上的应用程序(这是登录应用程序-它同时位于//login上)正在捕获所有路径,并且该应用程序的服务正在尝试通过其反应BrowserRouter路由路径。我已经了解到,如果路由器/服务工作者没有端点,它将把它传递回服务器。如果没有,我该怎么做呢?

0 个答案:

没有答案