Eri*_*ndi 11 angular-cli angular
这已经困扰了我一段时间,似乎每隔一周,我想出了一套不同的利弊.
它的要点是一个好的SPA分为两个不同的部分.前端和后端.前端应该只是静态文件(javascript,css,html等),而后端提供实际数据并且是动态的.但是,我似乎总是希望动态的前端是后端URL.
我的意思是我通常会提供我的应用程序,例如http://server:123/我的API和我的API http://other:456/api.通常,other并且server是相同的并且端口改变,但是随着我们的扩展,情况并非总是如此.
所以,我的问题是:为Angular 2应用程序提供配置数据的最佳实践是什么?
这就是我的想法:
代理
大多数Web服务器,甚至是大多数面向静态内容的Web服务器,都提供某种代理配置(nginx,angular-cli服务等).代理的问题是请求确实进行了双跳.首先必须将其发送到静态服务器,然后该服务器必须转向并发出真实请求.我不是这种架构的粉丝,尽管我过去在其他应用程序中使用它.
配置文件
这是我最喜欢的.我几乎/config.json在我的静态内容服务器上提供一个静态文件(比方说),该服务器包含一个或多个URL或其他非敏感信息.我喜欢这种方法,因为它允许你使用代理,或不.由你决定.大多数情况下,将Web服务器配置为基于url返回静态文件非常简单(比方说/config).
代码配置
这是我最不喜欢的.在这种方法中,配置直接写入代码文件(config.ts例如),并且必须针对每个环境进行更改.我认为代码和配置是2个不同的任务,在我使用的大多数公司中,它们由2个不同的团队处理.如果必须重新编译代码并重新部署以更改后端URL,那将是愚蠢的.
我使用配置文件,但更喜欢通过 DevOps 工具设置环境变量。
对于容器,为了更简单的配置,我使用环境变量。否则,我会传递后端配置存储的配置,例如 Redis 或现在的 Kube Secrets(更易于使用)。
| 归档时间: |
|
| 查看次数: |
1554 次 |
| 最近记录: |