如何完全使用create-react-app主页和代理

时间:2018-07-06 14:05:23

标签: reactjs create-react-app

我的应用绑定到主机名local.myapp.mydomain.com。在/etc/hosts

0.0.0.0 local.myapp.mydomain.com

我想在相对路径/app/ui中投放我的应用。由于我使用的是React Router,因此必须将/app/ui设置为基本名称:

<BrowserRouter basename='/app/ui'>
  <App />
</BrowserRouter>

当然,当我在package.json中创建多个代理对象时,这会引起问题:

{
  ...
  "homepage": "https://production.mydomain.com/home/ui",
  "proxy": {
    "/app/api": {
      "target": "http://localhost:3001",
      "changeOrigin": true,
      "secure": false
    },
    "/[^app\/ui]*": {                        // this doesn't work
      "target": "https://myapp.mydomain.com"
    }
  },

此后,我尝试通过URL local.myapp.mydomain.com:3000/home/ui访问该应用程序,但得到:

Proxy error: Could not proxy request /home/ui/ from local.myapp.mydomain.com:3000 to https://local.myapp.mydomain.com (undefined).

我认为我应该提到它仅适用于https://local.us1a.app-gaga.anaplan.com:3000/,而没有/home/ui路径,但是react-router在控制台中给了我这个错误:

Warning: You are attempting to use a basename on a page whose URL path does not begin with the basename. Expected path "/" to begin with "/home/ui".

我基本上想将对/app/api的请求代理到我的本地服务器,并将其他所有请求代理到云URL。然后,我不希望/home/ui路径被代理,因为那是它自己的路径。我该怎么办?

0 个答案:

没有答案