![](/img/trans.png)
[英]How do I alter Environment .ts Variables or Constants Post Build In Angular 8, host URL and API URL?
[英]How to alter post url in angular
我在 localhost:12334/xyz/abc 然后我想点击帖子 api 端点 localhost:12334/mno/postAction。
注意:我试过 Http client.post('/mno/postAction',{}) 但在 devTools 网络中显示 url 指向 localhost:12334/xyz/api/mno/postAction'
我是 angular 的新手,请帮我准备 url 以点击 postAction
我不想硬编码 localhost:12334 因为它会在生产中发生变化
为此,我们在angular
中使用环境变量。
在这个例子中,我有两个部署环境,即生产环境和登台环境。
环境.ts
export const environment = {
// ...
apiBaseUrl: 'http://my-local-api-url'
// ...
};
环境.prod.ts
export const environment = {
// ...
apiBaseUrl: 'http://my-production-api-url'
// ...
};
环境.staging.ts
export const environment = {
// ...
apiBaseUrl: 'http://my-staging-api-url'
// ...
};
现在,您的服务使用该变量
api.service.ts
import { environment } from '../environments/environment';
// ...
export class ProductService {
apiBaseUrl = environment.apiBaseUrl;
// ctor
// ...
getProducts() : Observable<Products> {
const url = this.apiBaseUrl+ '/api/products';
return this.http.get<Products>(url);
}
}
对于所有这些工作,您必须更改与目标环境匹配的配置选项,我们需要在 angular.json 中配置特定于目标的文件替换。 为此,我们将文件替换添加到 angular.json文件中。
angular.json
"configurations": {
"production": {
"fileReplacements": [
{
"replace": "src/environments/environment.ts",
"with": "src/environments/environment.prod.ts"
}
]
},
"staging": {
"fileReplacements": [
{
"replace": "src/environments/environment.ts",
"with": "src/environments/environment.staging.ts"
}
]
}
}
最后为这样的不同配置调用构建。
ng build --configuration=production // production
ng build --configuration=staging // staging
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.