繁体   English   中英

如何判断导轨是否在生产中?

[英]How to tell if rails is in production?

我使用script/server -e production在生产模式下启动rails。 它确实没有错误。 但是,如何判断它是否处于生产模式? 我尝试了一条不存在的路由,我在开发过程中遇到了类似的错误页面。

我想如果在生产模型下,我得到了我/ public文件夹中的404错误页面。

这是否意味着它没有以生产模式启动?

谢谢你的帮助。

如果它的Rails 3.1 +, Rails.env.production? 在生产中将返回true

Rails.env.production?  #=> true  
Rails.env.staging?     #=> false
Rails.env.development? #=> false  

2种简单方法:

tail -f log/production.log

如果在您点击应用程序后存在填充该日志的条目,则表示您处于生产模式。

第二种方式:

在你的一个视图中(可能布局很好),只需添加

<%= "Environment: #{RAILS_ENV}" %>

这将向您展示您正在运行的环境。

编辑

如果请求被视为“本地”(即来自localhost或127.0.0.1),您将在任何环境中看到默认的异常页面而不是实际的错误页面,您可以通过将其添加到ApplicationController来覆盖它

def local_request?
  false
end

您可以在api的文档中找到此方法

对于现代Rails版本(3+), Rails.env将环境作为String返回:

Rails.env #=> "production"

对于将返回Boolean每个环境,还有一些有用的访问器:

Rails.env.production?  #=> true  
Rails.env.staging?     #=> false
Rails.env.development? #=> false  

在命令行上键入rails console ,然后Rails.env

我发现重启rails服务器并在命令行上读取第二行要容易得多:

运行rails s -e production输出:

=> Booting Puma
=> Rails 4.2.4 application starting in `production` on http://localhost:3000

在示例中有Webrick,但有些人不明白更改服务器将如何替换名称。 为清晰起见更新。

命令行替代

$ echo $ RAILS_ENV

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM