【问题标题】:ruby on rails: heroku: Missing `secret_key_base` for 'production' environmentruby on rails:heroku:“生产”环境缺少“secret_key_base”
【发布时间】:2016-11-05 04:32:46
【问题描述】:

我将密钥添加到 heroku config var 中,但仍然出现错误。

这是正确的方法吗?我忽略了secrets.yml,因为我从其他来源了解到将其推向公众并不是一个好主意。

在 heroku 配置变量中:

[key] SECRET_KEY_BASE
[value] 3280570382948240938

secrets.yml

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

我到底做错了什么?

此外,如果我将我的密钥放入 heroku 的配置变量中,其他开发人员不会也看到这一点吗?那么,这还不算是公开的吗?我一直想知道这个概念。

【问题讨论】:

  • 其他开发人员无法看到您的环境变量,因为每个 Heroku 应用程序都运行在单独的虚拟服务实例上。

标签: ruby-on-rails ruby ruby-on-rails-4 heroku environment-variables


【解决方案1】:

我今天遇到了同样的问题,但对我来说解决方案有点不同。我意识到在我的本地环境中,我一直在使用:

Rails.application.secrets.secret_key_base

但对于 Heroku,请改用:

Rails.application.secret_key_base

^这也适用于我的本地环境。不确定额外的.secrets 是做什么用的。

【讨论】:

  • 我也遇到了同样的问题,这个问题已经解决了。 Rails 6 + 遵循 Scotch Rails API 教程。
【解决方案2】:

这里有一个简单的方法来用heroku设置密钥库:

heroku config:set SECRET_KEY_BASE=$(rake secret)

你可以通过heroku config:get SECRET_KEY_BASE看到它

并检查 rails 是否使用 Rails.application.secret_key_base(例如 heroku run rails console)提取它

【讨论】:

    【解决方案3】:

    你可以用heroku config设置环境变量

    首先在终端上运行以下命令生成密钥

    rake secret
    

    现在在下面的命令中使用那个键

    heroku config:set SECRET_KEY_BASE='put here new generated key'
    

    您可以参考此链接以获取更多参考

    https://devcenter.heroku.com/articles/config-vars

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-01-12
      • 2014-06-23
      • 2017-05-03
      • 2017-03-31
      • 2014-06-04
      • 2014-07-06
      • 2015-07-12
      相关资源
      最近更新 更多