![](/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.