繁体   English   中英

ruby on rails:heroku:“生产”环境缺少“secret_key_base”

[英]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'

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

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

这是使用 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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM