"Missing `secret_key_base` for 'production' environment" Heroku 上的错误



我收到了错误"在第一次在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)也许最重要的是,基于有关此错误的较旧问题, .gitignorediv not 包括 secrets.yml-是为Rails 5 App生成的默认值.gitignore。因此,secrets.yml应该与我的应用一起部署,该应用程序指定通过生产环境中的环境变量加载秘密。

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

我阅读了较旧的帖子,但是过去的答案似乎是确保secrets.yml不包括在.gitignore中,但是如前所述,这不适用于默认导轨5 .gitignore

我还能尝试什么?thx。

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

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

好吧,我知道发生了什么。运行heroku run bash并检查部署了哪些文件一直在启发。

的确,secrets.yml不在我本地仓库中的.gitignore文件中,但是似乎某人 - 可能是恶意黑客,可能是Gremlins-可能是Gremlins- Had将secrets.yml添加到我的Global .gitignore(.gitignore_global),因此该文件实际上不是被推到Heroku的

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

我考虑过删除这个问题,但如果其他问题遇到此问题,或者在诊断Heroku上使用heroku run bash的问题可能会有所帮助。

最新更新