如何覆盖Ruby / Sinatra中的默认内部服务器错误以显示erb文件

我想覆盖正常的sinatra内部服务器错误,因此它显示一个erb文件.

到目前为止我有这个:

set :show_exceptions, :after_handler
error 400..510 do
  erb :error
end

但它不起作用……任何想法?

最佳答案
这很可能是因为您在开发模式下运行它.不确定你是否可以在那里抑制它.但是,由于大多数时候在生产中显示此错误页面非常重要,您只需将RACK_ENV设置为生产即可.

例如,如果你像这样启动你的应用程序:

bundle exec ruby app.rb

只需添加RACK_ENV即可

RACK_ENV=production bundle exec ruby app.rb

生产服务器上的大部分时间都是这样设置的,因此无需将其设置为显式.

转载注明原文:如何覆盖Ruby / Sinatra中的默认内部服务器错误以显示erb文件 - 代码日志