首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ENV['RAILS_ENV']和ENV['RACK_ENV']是否需要在分期和生产中设置?

ENV['RAILS_ENV']和ENV['RACK_ENV']是否需要在分期和生产中设置?
EN

Stack Overflow用户
提问于 2015-06-07 13:53:38
回答 1查看 2K关注 0票数 1

ENV['RAILS_ENV']ENV['RACK_ENV']在发展中。返回development。在暂存或生产中,它返回nil。我们是否应该显式地为分阶段和生产环境设置这两个环境变量?

Rails是否期望设置此设置?

我还注意到以下几点。我有一个校正器:config/initializers/01_redis.rb

代码语言:javascript
复制
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']

你的想法是什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-06-07 17:06:00

Rails需要知道它运行在什么环境中。代码的特定部分可以在https://github.com/rails/rails/blob/master/railties/lib/rails.rb#L69中找到

代码语言:javascript
复制
def env
  @_env ||= ActiveSupport::StringInquirer.new(ENV["RAILS_ENV"] || ENV["RACK_ENV"] || "development")
end

如果你想在生产模式下工作,是的,你应该设置这个环境变量。

但是,有些服务器为您设置了变量。例如,Apache客运,默认为生产,并做到这一点。

https://www.phusionpassenger.com/library/config/apache/reference/#passengerappenv

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30694321

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档