将 Angular 8 应用程序部署到生产环境
您可以使用环境功能,例如:
用于发展
proxy.conf.json
{
"/api": {
"target": "http://localhost:3000/api",
"secure": false,
"pathRewrite": {"^/api" : ""}
}
}
您在 environments/environment.ts
中设置后端 baseURL
export const environment = {
production: false,
backend: {
baseURL:"http://localhost:3000/api"
}
};
在 service 中使用 baseURL:
baseUrl: string = environment.backend.baseURL;
getAll(): Observable<UsersResponse> {
return Observable.create(observer => {
this.http.get<AccountsResponse>(`${this.baseUrl}` + '/users')
.subscribe((result) => {
const accountsResponse = result;
observer.next(accountsResponse);
observer.complete();
});
});
}
为了开发,使用实时发球:
$ng serve --proxy-config proxy.conf.json --host 0.0.0.0 --port 4200
开发地址:
http://localhost:4200/yourapp
正在运行的服务将启用 CORS 并将 API 调用发送到
http://localhost:3000/api/v1
用于部署到生产
为生产构建的命令:
$ng build --prod --base-href=/yourapp/
该服务将从 prod 环境配置中获取 baseURL:
environments/environment.prod.ts
export const environment = {
production: true,
backend: {
baseURL:"http://example.com/api"
}
};
所以,通过使用不同的环境,你可以配置不同的api url。
请记住在您的生产网络服务器中启用 CORS,默认情况下,浏览器不允许连接到与您的 Angular 应用程序不同的域。