流星环境变量在生产中无效

时间:2014-07-11 22:07:53

标签: javascript jquery meteor environment-variables

我正在使用Meteor UP进行部署,并在mup.json文件和包含它们的文件server / lib / env.js中设置了环境变量。

以下是访问它的地方:

Meteor.startup(function() {

  // Remove configuration entries in case service is already configured
  Accounts.loginServiceConfiguration.remove({
      service: "facebook"
  });

  // Add Facebook configuration entry
  Accounts.loginServiceConfiguration.insert({
    "service": "facebook",
    "appId": process.env.FACEBOOK_1,
    "secret": process.env.FACEBOOK_2
  });

});

然而,在浏览器中我得到“无效的应用程序ID:null”,但它在开发中有效,有什么想法吗?

1 个答案:

答案 0 :(得分:4)

使用Meteor.settings。

开发

.config/development/settings.json中定义设置。 在流星项目的根目录中创建shell脚本(dev.sh):

#!/bin/bash
meteor --settings .config/development/settings.json

而是使用命令meteor运行./dev.sh

生产(使用mup部署)

mup init使用生成的文件mup.jsonsettings.json创建“部署目录”。

在meteor app目录之外执行mup init非常重要,因此部署配置不会存储在应用服务器上。

用法

settings.json的示例:

{
    "service_id":"...",
    "service_secret":"...",
    "public":{
        "service_name":"..."
    }
}
  

如果设置对象包含名为public的键,则   Meteor.settings.public将在客户端以及   服务器。 Meteor.settings的所有其他属性仅定义于   服务器。

仅限服务器

Meteor.settings.service_id
Meteor.settings.service_secret

服务器和客户端

Meteor.settings.public.service_name

更新

相应地更改路径Hubert OG的评论

相关问题