我用了 script/server -e production
在生产模式下启动Rails。做到了,我没有任何错误。但是,如何知道它是否处于生产模式?我尝试了一条不存在的路由,并且在开发中遇到了类似的错误页面。
我想如果在生产模式下,我会在/ public文件夹中看到404错误页面。
这是否意味着它没有在生产模式下启动?
谢谢你的帮助。
Answers:
2种简单方法:
tail -f log/production.log
如果您在点击应用后有条目填充该日志,则说明您处于生产模式。
第二种方式:
在您的一种视图中(可能是布局很好),只需添加
<%= "Environment: #{RAILS_ENV}" %>
这将向您显示您正在运行的环境。
编辑
如果将请求视为“本地”(来自本地主机或127.0.0.1),则在任何环境下您都将看到默认的异常页面,而不是实际的错误页面,您可以通过将其添加到 ApplicationController
def local_request?
false
end
您可以在api的文档中找到此方法
RAILS_ENV
已弃用。使用Rails.env
代替。
如果是Rails 3.1+,Rails.env.production?
则将true
在生产时返回。
Rails.env.production? #=> true
Rails.env.staging? #=> false
Rails.env.development? #=> false
>> Rails.env
通过rails c
似乎可显示任何模式。
Rails.env.development?
也提供。
Rails.env
是一个用ActiveSupport::StringInquirer
。api.rubyonrails.org/classes/ActiveSupport/StringInquirer.html
在命令行中rails console
,然后输入Rails.env
。
我发现重新启动Rails服务器并在命令行中阅读第二行要容易得多:
运行rails s -e production
输出:
=> Booting Puma
=> Rails 4.2.4 application starting in `production` on http://localhost:3000
在示例中有Webrick,但有些人不了解更改服务器将如何替换名称。为清楚起见进行了更新。
WEBrick
在生产中使用理智。
命令行替代
$ echo $ RAILS_ENV
ack