我正在努力使一个angularjs应用程序12因素兼容配置(http://12factor.net/config).
它应该取决于环境,我不应该看到的话development,test,production在代码等.
例如,变量可以存储在bash env中.我可以将它们传递给网络服务器.
我已经想到了一个.erb模板文件erb config.js.erb > config.js,但是如果我在应用程序运行时更改了一个变量,我必须重做它.
我已经找到了这篇文章http://mindthecode.com/how-to-use-environment-variables-in-your-angular-application/
但这是一个很大的谎言和Grunt.js这样做,真的......无论如何.
我知道12factor哲学不是为前端应用而制作的,但我的角度应用程序可以在许多不同的服务器中部署在许多环境中,并且不会伤害任何人来尝试正确地做事:).
谢谢 !
编辑:
我想使用的配置参数有些像:
app:
api:
url: "The url of the api server"
port: 8080
cdn:
images: "url of my images caching service"
google:
oauth:
"api_key": "The api key used for that deployment"
#other external frontend services
Run Code Online (Sandbox Code Playgroud)
其他编辑:
这个家伙有点回答:http://bahmutov.calepin.co/inject-valid-constants-into-angular.html,我发现它有点丑陋,完全绑定到angularjs; 但它的确有效!
我正在使用存储 JSON api。
编辑得更具体:
当我 :
POST https://www.googleapis.com/upload/storage/v1/b/myBucket/o?uploadType=resumable HTTP/1.1
Authorization: Bearer [MY_AUTH_TOKEN]
Content-Length: 38
Content-Type: application/json; charset=UTF-8
X-Upload-Content-Type: image/jpeg
X-Upload-Content-Length: 2000000
{ "name": "myObject", "foo": "bar" }
Run Code Online (Sandbox Code Playgroud)
然后仅设置文件名,我想"foo" : "bar"在metadata字段中查看。
在文档中:
(1)
/upload URI,用于媒体。/upload 端点的格式是带有 /upload 前缀的标准资源 URI。传输媒体数据本身时使用此 URI。示例:POST /upload/storage/v1/b/myBucket/o。
和
(2)
元数据的标准资源 URI。如果资源包含任何数据字段,这些字段将用于存储描述上传文件的元数据。您可以在创建或更新元数据值时使用此 URI。示例:POST /storage/v1/b/myBucket/o。
他们还举了一个 (1) 请求的例子/upload:
如果您有文件的元数据,请以 JSON 格式将元数据添加到请求正文。否则,请将请求正文留空。
这些有点矛盾。
尽管如此,将 json 正文发送到/upload: 仅设置 'name' 属性才有效。
将相同的 json 正文发送到元数据请求可以得到:
{
"error": {
"errors": [
{
"domain": "global", …Run Code Online (Sandbox Code Playgroud)