我.env
在生产中的根文件夹中有一个文件。该文件定义了SECRET_KEY_BASE
在config/secrets.yml
. 问题是我无法.env
在config/secrets.yml
. 我试过使用dotenv
gem 没有成功。
关于如何在生产中做到这一点的任何想法?
我不想webmaster
在生产服务器上为我的用户全局设置它。该SECRET_KEY_BASE
值只能由应用程序访问。
我正在使用导轨 4.1。
我.env
在生产中的根文件夹中有一个文件。该文件定义了SECRET_KEY_BASE
在config/secrets.yml
. 问题是我无法.env
在config/secrets.yml
. 我试过使用dotenv
gem 没有成功。
关于如何在生产中做到这一点的任何想法?
我不想webmaster
在生产服务器上为我的用户全局设置它。该SECRET_KEY_BASE
值只能由应用程序访问。
我正在使用导轨 4.1。
我也用dotenv
宝石。它几乎在所有情况下都对我有用。
这是我的dotenv
gem 配置(是的,我dotenv
输入了Gemfile
)。我只是创建一个aaaaa.rb
初始化文件。
config/initializers/aaaaaa.rb
#obscure name because rails load initializers/* files based on alphabets
require 'dotenv'
Dotenv.load
config/boot.rb
而且,它没有的情况下,我最终在文件中执行此 操作
ENV["SECRET_KEY_BASE"] = "foobar"
我也遇到了这个问题。这是我如何让它工作的。我按照文档及早初始化 dotenv:
# config/application.rb
Bundler.require(*Rails.groups)
Dotenv::Railtie.load
HOSTNAME = ENV['HOSTNAME']
但后来我遇到了这个错误(问题#155):
gems/dotenv-rails-1.0.2/lib/dotenv/rails.rb:17:in `load': undefined method `join' for nil:NilClass (NoMethodError)
解决方法(也记录在问题 #155中)是替换Dotenv::Railtie.load
为:
Dotenv.load(File.expand_path("../../.env.#{Rails.env}", __FILE__))
显然,这只是使用 rails 4.1 时的问题。
也有这个问题,但设法让它在我的 secrets.yml 文件中工作:
production:
secret_key_base: ENV["SECRET_KEY_BASE"]
删除后它工作<%= %>