Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angularjs 不同值的配置常数_Angularjs - Fatal编程技术网

Angularjs 不同值的配置常数

Angularjs 不同值的配置常数,angularjs,Angularjs,我在不同的环境中有一个AngularJS网站dev,prod。我也有一些根据环境而不同的配置常量,即向API发送请求 我读过很多文章,它们通过创建一个动态文件,用Grunt解决了这个问题。还有其他更自制的方法吗 更新 在客户端,我在Nginx web服务器上运行我的AngularJS客户端应用程序。这是一种黑客行为,但我的自制方法是使用静态主机条目覆盖API的地址 /etc/主持人 192.168.1.100 api.mydomain.com 它是脏的,但可以工作。您可以让Node.js

我在不同的环境中有一个AngularJS网站dev,prod。我也有一些根据环境而不同的配置常量,即向API发送请求

我读过很多文章,它们通过创建一个动态文件,用Grunt解决了这个问题。还有其他更自制的方法吗

更新
在客户端,我在Nginx web服务器上运行我的AngularJS客户端应用程序。

这是一种黑客行为,但我的自制方法是使用静态主机条目覆盖API的地址

/etc/主持人

192.168.1.100    api.mydomain.com

它是脏的,但可以工作。

您可以让Node.js服务器决定为您的客户端提供哪个配置文件

var app = express();
app.set('env', process.argv[2] || 'development');
//...

app.get('/libs/config.js', function(req,res){
     var env = app.get('env');
     if(env === 'development') {
        res.sendfile('config/dev-config.js');
     } else if (env === 'production') {
        res.sendfile('config/prod-config.js');
     } else {
        res.send(404);
     }
});
在你身上,你做到了:

<script src="libs/config.js"></script>

此外,我认为Express可以直接支持使用process.env.NODE_env配置当前环境,因此,最有可能的情况是,您只需在production NODE.js服务器中设置NODE_env=production environment变量,而无需直接从命令行传递配置。

谢谢,但我认为我不能在生产环境中这样做。不,你们会在你们的开发环境中这样做。我也这样做@罗伯,你还有其他需要设置的常数吗?如果是这样的话,也许你可以在编辑你的问题时提供更多的信息,从而得到更完整的答案?因为如果您的服务器知道其当前环境,它可以为您生成某种类型的配置。您是指服务器吗?目前是node.js.Well,您可以将en环境变量传递给您的node.js服务器,并使用它根据您的环境决定为客户端提供哪个配置文件。我不知道node.js。我刚刚加载并启动了一个默认的HTTP服务器。无论如何,我想我理解你的方法。然而,我不知道express。我想我的服务器没有使用它,也许我是说没有意义。请在我的服务器上找到一个plunker。嗨,Edwin,我终于将AngularJS客户端从Node.js迁移到了Nginx。你知道我是否可以采用同样的方法吗。你知道细节吗?
node app.js development
node app.js production