2016-11-16 36 views
2

我有一个Rails应用程序,我想在云端和本地生产环境中运行。这是为了使它能够离线工作。 为此,我将本地数据库与云上的数据库同步。哪些是相同的。Rails SECRET_KEY_BASE在本地生产环境下返回零无效

那么当然我将安装在本地计算机和云上的应用程序。

到目前为止,我已经开发了我的电脑的发展和在Heroku生产和一切工作正常。

在我安装rubystack并运行其上的应用生产电脑只要我在开发它工作正常。

但是如果我切换到生产它找不到密钥。虽然我有我的秘密文件:

production 
secret_key_base: <%= ENV["SECRET_KEY_BASE"] %> 

而且无论如何它在heroku上的作品。

的步骤的概括:

  • 创建我的应用程序在我的电脑上使用Ubuntu操作系统

  • 将它设置在Heroku和它的作品的生产计算机上精细

  • 安装rubystack与Windows操作系统,复制应用程序和数据库,并运行迁移。

如果在生产计算机上,我在控制台上检查SECRET_KEY_BASE,它返回nil。

但是在heroku上它工作正常。

我缺少什么?它可能是由我的Ubuntu电脑和Ruby Stack的不同ruby配置引起的?

回答

0

转到https://dashboard.heroku.com/apps/YOUR_APP_NAME/settings,点击Reveal Config Vars,然后compy后面的值SECRET_KEY_BASE

然后用SECRET_KEY_BASE=COPIED_VALUE rails s -e production启动本地服务器。

或者你可以把export SECRET_KEY_BASE=COPIED_VALUE.bashrc(取决于你所使用的shell)文件。

+0

如果我按照你的建议启动服务器,我会得到:'SECRET_KEY_BASE'不被识别为内部或外部命令。我找不到.bashrc文件,所以我在主目录上创建它,并添加了你的代码,但是这并没有解决它.. – Catmal

+0

我使用rbenv – Catmal

+0

好吧,因为我在Windows上我需要把SECRET ... 最后。但这并不起作用。我现在通过将它明确地设置在秘密文件上来工作。我知道这不是一个好的解决方案,但它是我唯一能够工作的人。 – Catmal

相关问题