在为生产构建时更改 remoteServiceBaseUrl
Change remoteServiceBaseUrl when building for production
当要部署到服务器时,我们需要在/src/assets/appconfig.json.
中更改remoteServiceBaseUrl
有没有办法根据环境设置不同的remoteServiceBaseUrl
/appBaseUrl
?
您可以使用 environment-specific 个文件,例如appconfig.prod.json
- assets/
- appconfig.json
- appconfig.prod.json
无法根据环境复制不同的 assets 文件:angular/angular-cli#9634
但是angular-cli支持Multiple Apps integration。
可以复制app对象,修改assets配置,在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
最后,我重写了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 并且效果很好。
当要部署到服务器时,我们需要在/src/assets/appconfig.json.
中更改remoteServiceBaseUrl
有没有办法根据环境设置不同的remoteServiceBaseUrl
/appBaseUrl
?
您可以使用 environment-specific 个文件,例如appconfig.prod.json
- assets/
- appconfig.json
- appconfig.prod.json
无法根据环境复制不同的 assets 文件:angular/angular-cli#9634
但是angular-cli支持Multiple Apps integration。
可以复制app对象,修改assets配置,在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
最后,我重写了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 并且效果很好。