ruby-on-rails - rails 404 422 500 完全空白

标签 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

最佳答案

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

  • 在您的 ApplicationController 中使用 rescue_from 创建一个异常处理程序,用于任何可能爆炸的东西,特别是 Object。
  • 创建默认路由以捕获任何未以其他方式路由的内容。

如果您超出路由表,或触发“500”错误,那是因为异常。这些需要处理,否则您将看到一个空白屏幕,除非 Web 服务器以其他方式配置。

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

关于ruby-on-rails - rails 404 422 500 完全空白,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2364388/

相关文章:

javascript - Rails 4 - javascript 文件未在生产中加载但在本地运行良好。 (英雄)

ruby-on-rails - 如何在安装了 Ruby on Rails 的系统上使用 RVM?

authentication - 为什么/signin-oidc 在使用 Azure AD 登录后返回 404?

java - 如何从 Heroku Java Web 应用程序对 Heroku DB 执行 CRUD 操作

python - Heroku 运行命令抛出超时等待

ruby-on-rails - Sqlite 创建数据库并插入数据

ios - 设置了正确的内容类型,但 .ipa 文件被视为 .zip 文件

servlets - 调用 servlet 导致 HTTP 状态 404 "The requested resource is not available"

REST 404 与 400。使用哪一个?

mongodb - SailsJS 部署到 Heroku,连接到 Mongolabs MongoDB