簡體   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