Angular 2应用程序

时间:2017-01-24 21:16:27

标签: angular angular-cli

这已经困扰了我一段时间,似乎每隔一周,我想出了一套不同的利弊。

它的要点是一个好的SPA分为两个不同的部分。前端和后端。前端应该只是静态文件(javascript,css,html等),而后端提供实际数据并且是动态的。 但是,我似乎总是想要使用前端动态的一个是后端网址

我的意思是,我通常会将http://server:123/http://other:456/api中的API用于我的应用程序。通常,otherserver是相同的,端口会发生变化,但是随着我们的扩展,情况并非总是如此。

所以,我的问题是:为Angular 2应用程序提供配置数据的最佳做法是什么?

以下是我的想法:

代理

大多数Web服务器,甚至是大多数面向静态内容的Web服务器,都提供某种代理配置(nginx,angular-cli服务等)。 代理的问题是请求确实进行了双跳。首先必须将其发送到静态服务器,然后该服务器必须转向并发出真实请求。 我不是这个架构的粉丝,尽管我过去在其他应用程序中使用它。

配置文件

这是我最喜欢的。我几乎在我的静态内容服务器上提供一个静态文件(假设/config.json),该服务器包含一个或多个URL或其他非敏感信息。 我喜欢这种方法,因为它允许您使用代理,或。由你决定。 大多数情况下,将Web服务器配置为基于url返回静态文件非常简单(假设为/config)。

代码配置

这是我最不喜欢的。在此方法中,配置直接写入代码文件(例如config.ts),并且必须针对每个环境进行更改。我认为代码和配置是2个不同的任务,在我使用的大多数公司中,它们由2个不同的团队处理。 如果必须重新编译代码并重新部署以更改后端URL,那将是愚蠢的。

1 个答案:

答案 0 :(得分:0)

我使用了配置文件,但更喜欢使用DevOps工具设置环境变量。

对于容器,为了简化配置,我使用环境变量。否则我会传递后端配置存储的配置,比如Redis或现在的Kube Secrets(更容易使用)。