0

我在扯头发。在我的 Mac 上,显示了我想向用户显示的自定义漂亮错误。当我部署到我的 ubuntu 机器时,我会收到一条最小的黑白错误消息。

我有 sinatra 错误处理,就像这样

set :raise_errors, false
set :show_exceptions, false

not_found do
    erb :'errors/not_found'
end

我认为这是因为我正在运行 nginx 和瘦(在 ubuntu 上),但如果我绕过这个堆栈并直接运行,我仍然在 ubuntu 上遇到问题。

ruby start.rb #I get a minimal black and white error

或者

rackup -E production config.ru  #I get a minimal black and white error

或者

rackup -E development config.ru  #I get rack stack trace

无论我如何开始,即使我使用 Rack::ShowExceptions,我的 Mac 上都会出现相当大的错误。我正在运行 ruby​​ 1.9.2 和 sinatra 1.3.2。

关于如何在生产中向用户提供漂亮错误的任何线索?

4

1 回答 1

0

好的,在数周内多次尝试修复此问题失败后,我意识到我在做一些愚蠢的事情。我的生产 config.yaml 中缺少 [email_errors][to]。这打破了我的error_handler。如果我在将“use Rack::ShowExceptions”添加到我的 config.ru 时阅读了机架堆栈跟踪,我会看到问题,除了我没有阅读它,因为 error_handler 抛出了我期望的相同错误测试错误。愚蠢的监督。

于 2012-07-06T00:27:00.077 回答