问题描述
我在Heroku上有3个AngularJS应用程序。$ b
(例如:angularjs-dev使用api-dev,angularjs-qa使用api-qa)
我创建了如下所示的常量文件:
SITE ='dev'
API_SITE = {
dev:'dev-url',
qa:'qa-url',
制作:'production-url'
}
然后,当我需要API网址时,我将其称为 API_SITE [SITE]
这个问题是当我要部署到qa时,我必须将 SITE
更改为 qa
。
我想知道:我们可以让AngularJS读取在Heroku上定义的环境变量,所以我们不需要改变它再次手动
注意:
我知道AngularJS在客户端运行。所以,我不知道该怎么做。
任何人?
如果有人正在寻找解决方案(基于我的环境:Heroku上的AngularJS和NodeJS)
我将这段代码添加到 web.js (NodeJS初学者文件)中
var options = {};
var jade = require('jade');
app.get('/ site.js',function(req,res){
res.send(var SITE ='+ process.env.SITE +') ;
});
然后,在文件 index.html 中,我只添加了< script src =/ site.js>< / script>
用于检索 SITE
变量。
效果很好。
I have 3 of AngularJS apps on Heroku. Each of them consumes different API.
(For example: angularjs-dev consume api-dev, angularjs-qa consumes api-qa)
I created constant file like this below
SITE = 'dev'
API_SITE = {
dev : 'dev-url',
qa : 'qa-url',
production: 'production-url'
}
And then when I want the API url, I call it this way API_SITE[SITE]
This problem is when I want to deploy to qa, I have to change SITE
to qa
.
I wonder that: can we make AngularJS read environment variables defined on Heroku so we won't have to change it manually again
Note:I know that AngularJS is running on client-side. So, I have no idea how to do it.
Anyone?
In case that someone is looking for the solution (based on my environment: AngularJS and NodeJS on Heroku)
I added this code to web.js (NodeJS starter file)
var options = {};
var jade = require('jade');
app.get('/site.js', function(req, res){
res.send("var SITE='"+process.env.SITE+"'");
});
Then, in file index.html I just added <script src="/site.js"></script>
for retriving SITE
variable.
It works well.
这篇关于如何从AngularJS访问Heroku上的环境变量的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!