我构建了一个包含两个部分的Web应用程序:静态服务前端和REST API后端。目前,前端有一个硬编码的API路径,这对于开发过程来说很好,因为两个实例都在同一台机器上运行。因此,在客户端,一个Angular2服务提供属性:
this.apiServer = "http://127.0.0.1:3000/api/v1";
现在,我想部署这个应用程序。前端只包含静态文件,因此我希望尽可能简化并将服务工作外包(例如,使用Amazon S3提供静态网站)。 后端应该在另一台机器上运行。当然,我可以将硬编码路径更改为后端服务器的IP,但我不认为这是正确的方法。特别是因为这会破坏我的发展流程。
我考虑过以下短期解决方案:如果Angular2在开发模式下运行,请使用localhost
,否则使用<ip-to-backend>
,但这看起来也有点hacky。
如果我有权访问前端服务器,我可能会重定向API请求(例如here),但我不能假设我始终拥有该访问权限。
有没有办法避免硬编码的api路径并将前端作为静态内容提供而不触及它?
我的研究没有成功,但也许我只是错过了正确的关键词: - )