2014-09-24 80 views
1

我无法为在Heroku上运行的Ruby on Rails 4.1.4应用程序中的生产环境设置secret_key_base无法在Heroku上运行的Ruby on Rails 4.1.4应用程序中为生产环境设置secret_key_base

下面是我试图做的步骤:

  • 运行rake secret和密钥复制到剪贴板

  • 运行heroku config:set SECRET_KEY_BASE=%SECRET_KEY%

它返回成功Heroku在站点的仪表板上列出了这个环境变量,但是应用程序仍然认为没有提供密钥:

缺少secret_key_base为 '生产' 的环境中,设置这个值 在config/secrets.yml

为什么?我究竟做错了什么?我该如何解决它?

在此先感谢。

回答

1

config/secrets.yml添加到版本控制并再次部署。您可能需要从.gitignore中删除一行,以便您可以提交该文件。

.gitignore Github上为我的Rails应用程序中创建包含config/secrets.yml


OR

按照此步骤:

  1. $ heroku config(在你的终端运行此命令)
  2. 从复制值
  3. 糊值secrets.yml文件代替<%= ENV["SECRET_KEY_BASE"] %>(无任何引号)

例如

production: 
    secret_key_base: b1de60dd9e00816d0569c5ce3f8dbaa3c8ea4a7606120dc66cXXXXXXXXXXXXXXXXXXXXXX 
  • 重新部署
  • 注意:其实这是不安全的b如果您只是想在生产模式下临时运行您的应用程序进行测试或处于紧急状态

    我希望它适合您...

    +0

    是的,它的工作原理。非常感谢!但为什么“config/secrets.yml”文件默认包含在.gitignore中?关于你的第二个版本 - 我读到,保留生产环境的密钥基础是不安全的。你为什么推荐它? – FrozenHeart 2014-09-24 09:35:03

    +0

    @FrozenHeart:我遇到了和你一样的问题,我只是想在生产环境中运行该应用程序,所以我尝试了这一点,并开始工作。但在此之后,我开始了解第一个选项并进行了修改......我很高兴知道我可以以某种方式帮助您。默认情况下,它会放入gitignore以避免未跟踪文件 – 2014-09-24 10:00:39

    +0

    我的意思是为什么他们决定放置它。 gitignore文件? – FrozenHeart 2014-09-24 10:34:23

    0

    什么在你的config/secrets.yml?对于生产,它应包含以下行:

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

    是的,但它也有“<%=" and "%>”围绕ENV – FrozenHeart 2014-09-24 08:25:07

    +0

    您是对的。答案已更新。它解决了你的问题吗? – zwippie 2014-09-24 08:33:54

    +0

    不,因为这些行已经在这里 – FrozenHeart 2014-09-24 08:34:32

    相关问题