我的应用绑定到主机名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
路径被代理,因为那是它自己的路径。我该怎么办?