我使用script/server -e production
在生产模式下启动rails。它确实没有错误。但是,如何判断它是否处于生产模式?我尝试了一条不存在的路由,我在开发过程中遇到了类似的错误页面。
我想如果在生产模型下,我得到了我/ public文件夹中的404错误页面。
这是否意味着它没有以生产模式启动?
感谢您的帮助。
答案 0 :(得分:217)
如果其Rails 3.1 +,Rails.env.production?
在投放时会返回true
。
Rails.env.production? #=> true
Rails.env.staging? #=> false
Rails.env.development? #=> false
答案 1 :(得分:32)
2种简单方法:
tail -f log/production.log
如果在点击应用程序后存在填充该日志的条目,则表示您处于生产模式。
第二种方式:在你的一个视图中(可能布局很好),只需添加
<%= "Environment: #{RAILS_ENV}" %>
这将向您展示您正在运行的环境。
修改强>
如果请求被视为“本地”(即来自localhost或127.0.0.1),您将在任何环境中看到默认的异常页面而不是实际的错误页面,您可以通过将此添加到{{1 }}
ApplicationController
您可以在api
的文档中找到此方法答案 2 :(得分:23)
对于现代Rails版本(3 +),Rails.env
将环境作为String
返回:
Rails.env #=> "production"
每个环境都有一些有用的访问者会返回Boolean
:
Rails.env.production? #=> true
Rails.env.staging? #=> false
Rails.env.development? #=> false
答案 3 :(得分:8)
在命令行上输入rails console
,然后输入Rails.env
。
答案 4 :(得分:3)
我发现重新启动rails服务器并在命令行上读取第二行更容易:
运行rails s -e production
输出:
=> Booting Puma
=> Rails 4.2.4 application starting in `production` on http://localhost:3000
在示例中有Webrick,但有些人不明白更改服务器如何替换名称。为清晰起见,已更新。
答案 5 :(得分:-1)
命令行替代
$ echo $ RAILS_ENV