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

如何覆盖Ruby/Sinatra中的默认内部服务器错误以显示erb文件,ruby,error-handling,sinatra,internal-server-error,Ruby,Error Handling,Sinatra,Internal Server Error,我想覆盖正常的sinatra内部服务器错误,以便它显示erb文件 到目前为止,我有: set :show_exceptions, :after_handler error 400..510 do erb :error end 但它不起作用。。。有什么想法吗?这很可能是因为您在开发模式下运行它。不确定是否可以在那里抑制它。但由于大多数情况下,只需在生产中显示此错误页面,您只需将RACK_ENV设置为生产 例如,如果您像这样启动应用程序: bundle exec ruby app.rb 只需添

我想覆盖正常的sinatra内部服务器错误,以便它显示erb文件

到目前为止,我有:

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

但它不起作用。。。有什么想法吗?

这很可能是因为您在开发模式下运行它。不确定是否可以在那里抑制它。但由于大多数情况下,只需在生产中显示此错误页面,您只需将
RACK_ENV
设置为生产

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

bundle exec ruby app.rb

只需添加
RACK\u ENV

RACK_ENV=生产包exec ruby app.rb

大多数情况下,在生产服务器上,这是无论如何设置的,因此不需要显式设置