发布
社区首页 >问答首页 >在Heroku上“缺少”生产环境的`secret_key_base`“错误

在Heroku上“缺少”生产环境的`secret_key_base`“错误
EN

Stack Overflow用户
提问于 2016-12-17 13:15:44
回答 1查看 1.2K关注 0票数 4

第一次在Heroku上部署我的应用程序时,我收到了“一个未处理的低级错误”,heroku logs显示:

缺少“生产”环境的secret_key_base,在config/secrets.yml中设置此值

1)默认的secrets.yml指定生产的secret_key_base: <%= ENV["SECRET_KEY_BASE"] %>

2)我使用rails secret生成了一个秘密,然后通过heroku config:set SECRET_KEY_BASE='(the key)'将其添加到应用程序的Heroku配置中

3) heroku config显示了SECRET_KEY_BASE的这个值集

4)也许最重要的是,基于有关此错误的老问题,.gitignore不包括secrets.yml--这是为Rails 5应用程序生成的默认.gitignore。因此,应该使用我的应用程序部署secrets.yml,该应用程序指定通过生产环境中的环境变量加载秘密。

5)我还运行了heroku ps:restart,以防应用程序需要额外的帮助才能使环境变量设置生效

我读过以前的文章,但过去的答案似乎是确保secrets.yml不包含在.gitignore中,但正如前面提到的,这不适用于默认的Rails 5 .gitignore

我还能做什么呢?谢谢。

编辑:当我在命令行设置配置值时,我还接收到Heroku消息:

设置SECRET_KEY_BASE并重新启动(应用程序)..。完成

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-12-17 15:13:39

好吧,我知道发生了什么。运行heroku run bash并检查部署了哪些文件具有启发意义。

的确,secrets.yml不在我本地回购的.gitignore文件中,但似乎有人--可能是恶意黑客,也可能是捣蛋鬼--把secrets.yml添加到了MyGlobal.gitignore (.gitignore_global)中,因此这个文件实际上并没有被推到Heroku。

我已经从我的全局.gitignore中删除了机密文件,将开发和测试环境的秘密密钥卸载到dotenv进行管理,并且可以成功地运行我部署的应用程序。

我曾考虑过删除这个问题,但如果其他人遇到这个问题,甚至类似的问题,使用heroku run bash可能有助于诊断Heroku上的应用程序问题。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41198952

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档