当想要部署到服务器时,我们需要更改 /src/assets/appconfig.json 中的remoteServiceBaseUrl
。
有没有办法根据环境设置remoteServiceBaseUrl
/ appBaseUrl
?
答案 0 :(得分:2)
您可以使用特定于环境的文件,例如的 appconfig.prod.json 强>
- 资产/
- appconfig.json
- 的 appconfig.prod.json 强>
无法根据环境复制不同的资源文件:angular/angular-cli#9634
但angular-cli支持Multiple Apps integration。
您可以复制应用对象,修改资源配置,并在 angular-cli.json 中添加名称:
"apps": [
{
...
"assets": [
{
"glob": "**/!(appconfig.prod.json)",
"input": "./assets/",
"output": "./assets/"
},
...
],
...
},
{
"name": "prod",
...
"assets": [
{
"glob": "**/!(appconfig.*)",
"input": "./assets/",
"output": "./assets/"
},
{
"glob": "appconfig.prod.json",
"input": "./assets/",
"output": "./assets/appconfig.json"
},
...
],
...
}
],
<强>用法:强>
ng build -prod -app=prod
答案 1 :(得分:2)
最后,我用以下更改重写了AppPreBootstrap.ts:
加
import { environment } from 'environments/environment';
将getApplicationConfig()
更改为:
var version = environment.name ? '.' + environment.name : '';
return abp.ajax({
url: '/assets/appconfig' + version + '.json',
method: 'GET',
headers: {
'Abp.TenantId': abp.multiTenancy.getTenantIdCookie()
}
在环境配置中,我有一个“name”参数,它与environment.name.json文件名匹配。
现在我可以拥有appconfig.production.json并且效果很好。