Angular 以角度动态更改代理配置目标
在我的angular应用程序中,我使用由一些代理组成的代理配置文件。我的文件看起来像这样Angular 以角度动态更改代理配置目标,angular,Angular,在我的angular应用程序中,我使用由一些代理组成的代理配置文件。我的文件看起来像这样 { "/login": { "target": "http://w5:8080", "changeOrigin":true, "secure": false }, "/api/usersvcs/*": { "target": "http://w5:8080", "pathRewrite": {"^/api/usersvcs": ""}, "s
{
"/login": {
"target": "http://w5:8080",
"changeOrigin":true,
"secure": false
},
"/api/usersvcs/*": {
"target": "http://w5:8080",
"pathRewrite": {"^/api/usersvcs": ""},
"secure": false,
"logLevel":"debug"
},
"/api/ordersvcs/*": {
"target": "http://w5:8989",
"pathRewrite": {"^/api/ordersvcs": ""},
"changeOrigin":true,
"secure": false,
"logLevel":"debug"
},
"/api/paymentsvcs/*": {
"target": "http://w5:9898",
"pathRewrite": {"^/api/paymentsvcs": ""},
"changeOrigin":true,
"secure": false,
"logLevel":"debug"
},
}
proxy.conf.json
{
"/login": {
"target": "http://w3:8080",
"changeOrigin":true,
"secure": false
},
"/api/usersvcs/*": {
"target": "http://w3:8080",
"pathRewrite": {"^/api/usersvcs": ""},
"secure": false,
"logLevel":"debug"
},
"/api/ordersvcs/*": {
"target": "http://w3:8989",
"pathRewrite": {"^/api/ordersvcs": ""},
"changeOrigin":true,
"secure": false,
"logLevel":"debug"
},
"/api/paymentsvcs/*": {
"target": "http://w3:9898",
"pathRewrite": {"^/api/paymentsvcs": ""},
"changeOrigin":true,
"secure": false,
"logLevel":"debug"
},
}
此文件位于我的项目的根目录中(在src文件夹之外)。
如果我想使用托管在不同端口上的其他后端服务,每次都需要更改目标参数。在上面的文件中,我使用的是w3,然后是冒号后面的端口号。
如果我想使用w5,我必须像这样更改整个路径目标
{
"/login": {
"target": "http://w5:8080",
"changeOrigin":true,
"secure": false
},
"/api/usersvcs/*": {
"target": "http://w5:8080",
"pathRewrite": {"^/api/usersvcs": ""},
"secure": false,
"logLevel":"debug"
},
"/api/ordersvcs/*": {
"target": "http://w5:8989",
"pathRewrite": {"^/api/ordersvcs": ""},
"changeOrigin":true,
"secure": false,
"logLevel":"debug"
},
"/api/paymentsvcs/*": {
"target": "http://w5:9898",
"pathRewrite": {"^/api/paymentsvcs": ""},
"changeOrigin":true,
"secure": false,
"logLevel":"debug"
},
}
我正在使用npmstart
命令,其中包含了proxy.conf.json
文件,该文件在package.json
"scripts":{
...
"start": "ng serve --proxy-config proxy.conf.json --o",
...
},
是否可以更改目标主机名,就像我使用
npm启动w5
那么代理文件应该与上面的一样,目标是w5。我不这么认为,但至少可以使用.js文件而不是.json文件(请参阅),从而使用变量(甚至环境变量)来避免重复。明白了,但是你能告诉我如何通过启动项目的命令将值传递给
proxy.conf.js
文件吗?我认为这是不可能的。