我将密钥添加到heroku config var中,但我仍然收到错误。
这是正确的方法吗?我忽略了secrets.yml,因为我从其他消息来源读到,将此推向公众不是一个好主意。
在heroku配置var:
中[key] SECRET_KEY_BASE
[value] 3280570382948240938
在 secrets.yml
中production:
secret_key_base: <%= ENV["SECRET_KEY_BASE"] %>
我还有什么问题?
此外,如果我将我的密钥放入heroku的配置变量中,那么其他开发人员也不会看到这个吗?那么,那还不公开吗?我总是想知道这个概念。
答案 0 :(得分:6)
您可以使用heroku config
首先在终端
上运行以下命令生成密钥rake secret
现在在下面的命令
上使用该键heroku config:set SECRET_KEY_BASE='put here new generated key'
您可以参考此链接以获得更多参考资料
答案 1 :(得分:3)
我今天遇到了同样的问题,但对我来说解决方案有点不同。我意识到在我的本地环境中,我一直在使用:
Rails.application.secrets.secret_key_base
但对于 Heroku,请改为使用:
Rails.application.secret_key_base
^这也适用于我的本地环境。不确定额外的 .secrets
是做什么用的。
答案 2 :(得分:0)
这是一种使用heroku设置密钥库的简单方法:
heroku config:set SECRET_KEY_BASE=$(rake secret)
您可以通过heroku config:get SECRET_KEY_BASE
并检查是否用Rails.application.secret_key_base
(例如heroku run rails console
)将其捡起