ENV['RAILS_ENV']和ENV['RACK_ENV']在发展中。返回development。在暂存或生产中,它返回nil。我们是否应该显式地为分阶段和生产环境设置这两个环境变量?
Rails是否期望设置此设置?
我还注意到以下几点。我有一个校正器:config/initializers/01_redis.rb
redis_connection = Redis.new(host: URI.parse(ENV['REDIS_SERVER_URL']).host, port: URI.parse(ENV['REDIS_SERVER_URL']).port)
$redis = Redis::Namespace.new(Rails.env.to_sym, redis: redis_connection)在暂存过程中检查此文件时。Rails.env.to_sym被解释为:development。此外,在Rails控制台中运行Rails.env,在暂存过程中,返回staging。在初始化Rails应用程序之前,Rails可能需要ENV['RAILS_ENV']和ENV['RACK_ENV']。
你的想法是什么?
发布于 2015-06-07 17:06:00
Rails需要知道它运行在什么环境中。代码的特定部分可以在https://github.com/rails/rails/blob/master/railties/lib/rails.rb#L69中找到
def env
@_env ||= ActiveSupport::StringInquirer.new(ENV["RAILS_ENV"] || ENV["RACK_ENV"] || "development")
end如果你想在生产模式下工作,是的,你应该设置这个环境变量。
但是,有些服务器为您设置了变量。例如,Apache客运,默认为生产,并做到这一点。
https://www.phusionpassenger.com/library/config/apache/reference/#passengerappenv
https://stackoverflow.com/questions/30694321
复制相似问题