"Missing `secret_key_base` for 'production' environment" Heroku 上的错误
"Missing `secret_key_base` for 'production' environment" error on Heroku
我在 Heroku 上首次部署我的应用程序时收到错误 "An unhandled lowlevel error occurred",heroku logs
显示:
Missing secret_key_base
for 'production' environment, set this value
in 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
--这是默认生成的 .gitignore对于 Rails 5 个应用程序。因此,secrets.yml
应该已经与我的应用程序一起部署,它指定通过生产环境中的环境变量加载秘密。
5) 我还 运行 heroku ps:restart
,以防应用程序需要一些额外的帮助才能使环境变量设置生效
我阅读了较早的帖子,但过去的答案似乎确保 secrets.yml
未包含在 .gitignore
中,但如前所述,这不适用于默认 Rails 5 .gitignore
.
我还能尝试什么?谢谢
编辑:当我在命令行设置配置值时,我还收到了 Heroku 消息:
Setting SECRET_KEY_BASE and restarting (the app)... done
好的,我知道发生了什么。 运行 heroku run bash
检查部署了哪些文件很有启发性。
确实 secrets.yml
不在我本地存储库的 .gitignore
文件中,但似乎 某人 -- 可能是恶意黑客,可能是 gremlins——已将 secrets.yml
添加到我的全局 .gitignore (.gitignore_global
),因此该文件实际上 而不是 被推送到 Heroku。
我已经从我的全局 .gitignore 中删除了机密文件,将开发和测试环境密钥卸载到 dotenv 进行管理,并且可以 运行 我部署的应用程序成功了。
我想过删除这个问题,但会留下它以防其他人 运行 遇到这个问题,或者甚至是类似的问题,其中使用 heroku run bash
可能有助于诊断 Heroku 上的应用程序问题.
我在 Heroku 上首次部署我的应用程序时收到错误 "An unhandled lowlevel error occurred",heroku logs
显示:
Missing
secret_key_base
for 'production' environment, set this value inconfig/secrets.yml
1) 默认 secrets.yml
指定 secret_key_base: <%= ENV["SECRET_KEY_BASE"] %>
用于生产
2) 我使用 rails secret
生成了一个秘密,然后通过 heroku config:set SECRET_KEY_BASE='(the key)'
3) heroku config
显示为 SECRET_KEY_BASE
4) 也许最重要的是,根据有关此错误的较早问题,.gitignore
不 包含 secrets.yml
--这是默认生成的 .gitignore对于 Rails 5 个应用程序。因此,secrets.yml
应该已经与我的应用程序一起部署,它指定通过生产环境中的环境变量加载秘密。
5) 我还 运行 heroku ps:restart
,以防应用程序需要一些额外的帮助才能使环境变量设置生效
我阅读了较早的帖子,但过去的答案似乎确保 secrets.yml
未包含在 .gitignore
中,但如前所述,这不适用于默认 Rails 5 .gitignore
.
我还能尝试什么?谢谢
编辑:当我在命令行设置配置值时,我还收到了 Heroku 消息:
Setting SECRET_KEY_BASE and restarting (the app)... done
好的,我知道发生了什么。 运行 heroku run bash
检查部署了哪些文件很有启发性。
确实 secrets.yml
不在我本地存储库的 .gitignore
文件中,但似乎 某人 -- 可能是恶意黑客,可能是 gremlins——已将 secrets.yml
添加到我的全局 .gitignore (.gitignore_global
),因此该文件实际上 而不是 被推送到 Heroku。
我已经从我的全局 .gitignore 中删除了机密文件,将开发和测试环境密钥卸载到 dotenv 进行管理,并且可以 运行 我部署的应用程序成功了。
我想过删除这个问题,但会留下它以防其他人 运行 遇到这个问题,或者甚至是类似的问题,其中使用 heroku run bash
可能有助于诊断 Heroku 上的应用程序问题.