导轨404 422 500完全空白

时间:2010-03-02 15:44:08

标签: ruby-on-rails http-status-code-404 heroku

这可能很简单,但我无法弄清楚为什么我没有错误页面。

首先,我正在使用Heroku进行托管,因此它肯定处于生产模式。

如果我将“config.action_controller.consider_all_requests_local”行设置为true,我会收到详细的错误消息,否则,我会得到一个完全100%的空白屏幕。如果我查看来源,也是空白。

我的所有404,422,500.html文件都是公开的,我没有碰过它们。

如果我在那里开始生产模式,他们似乎在我的本地机器上工作。那么它必须与Heroku有关吗?有什么想法吗?

日志告诉我没什么用处。

以下是production.rb文件的详细信息

config.cache_classes = true

#ActionMailer::Base.delivery_method = :sendmail
Paperclip.options[:command_path] = "/usr/bin/"

# Don't care if the mailer can't send
config.action_mailer.raise_delivery_errors = false

# set delivery method to :smtp, :sendmail or :test
config.action_mailer.delivery_method = :smtp

# Full error reports are disabled and caching is turned on
config.action_controller.consider_all_requests_local = false
config.action_controller.perform_caching             = true
config.action_view.cache_template_loading            = true

1 个答案:

答案 0 :(得分:3)

我不认为Heroku使用像Passenger或Mongrel这样的.html文件。您可能需要通过两种基本机制来捕获和处理自己的异常:

  • 在ApplicationController中创建一个带有rescue_from的异常处理程序,用于可能爆炸的任何内容,包括特定的,包括对象的。
  • 创建一个默认路由以捕获未以其他方式路由的任何内容。

如果您破坏了路由表,或触发了“500”错误,那是因为例外情况。这些都需要处理,否则你将得到一个空白屏幕,除非另外配置了Web服务器。

Apache可以配置为使用ErrorDocument指令执行此操作。