刚刚使用Git将我的第一个应用程序推送到Heroku,立即出现了Interanl Server Error。
必须在应用程序的配置中设置config.secret_key_base。
这是因为在我的.gitignore文件中包含以下文件:
配置/初始化程序/secret_token.rb
我正在为我的.gitignore文件使用标准模板,该文件位于:https://github.com/github/gitignore/blob/master/Rails.gitignore
我的问题:我应该直接通过Heroku设置此密钥以增强安全性吗?
要么
我应该只从我的.gitignore文件中删除此行吗?
最佳答案
正如Nick Ginanto概述的那样,除了将 secret token 设置为Heroku上的ENV变量外,还需要执行以下操作。
从config/initializers/secret_token.rb
中删除.gitignore
将此文件中的行更改为:
MyApp::Application.config.secret_token = ENV['SECRET_TOKEN']
然后,它将提取您使用Heroku的config vars设置的 secret token 。
为了在您的本地环境中提取 token ,您需要添加它。这里有很多选项,但是最接近Heroku的选项是在项目根目录中使用foreman gem和
.env
文件。 .env
将需要具有secret_tokenSECRET_TOKEN=NKUd7gisd7fueAISDfg....
您可以使用
rake secret
命令生成 token 。确保将.env
文件添加到.gitignore
中。完成所有这些操作后,您将为Heroku和Local使用不同的 token ,并且这些 token 将不在源代码控件中。
关于ruby-on-rails - Heroku Config secret keystore 错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18556955/