![](/img/trans.png)
[英]“Missing `secret_key_base` for 'production' environment” error on Heroku
[英]ruby on rails: heroku: Missing `secret_key_base` for 'production' environment
我将密钥添加到 heroku 配置变量中,但我仍然收到错误消息。
这是正确的方法吗? 我忽略了secrets.yml,因为我从其他来源了解到,将其公之于众并不是一个好主意。
在 heroku 配置变量中:
[key] SECRET_KEY_BASE
[value] 3280570382948240938
在secrets.yml
production:
secret_key_base: <%= ENV["SECRET_KEY_BASE"] %>
我还做错了什么?
此外,如果我将我的秘密密钥放入 heroku 的配置变量中,其他开发人员不会也看到这一点吗? 那么,这不还是一种公开吗? 我一直想知道这个概念。
您可以使用heroku config
设置环境变量
首先在终端上运行以下命令生成密钥
rake secret
现在在下面的命令中使用该键
heroku config:set SECRET_KEY_BASE='put here new generated key'
您可以参考此链接以获取更多参考
这是使用 heroku 设置密钥库的一种万无一失的方法:
heroku config:set SECRET_KEY_BASE=$(rake secret)
你可以用heroku config:get SECRET_KEY_BASE
看到它heroku config:get SECRET_KEY_BASE
并检查 rails 是否使用Rails.application.secret_key_base
获取它(例如在heroku run rails console
中)
我今天遇到了同样的问题,但对我来说,解决方案有点不同。 我意识到在我的本地环境中,我一直在使用:
Rails.application.secrets.secret_key_base
但是对于 Heroku,请改用:
Rails.application.secret_key_base
^这也适用于我的本地环境。 不确定额外的.secrets
是做什么用的。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.