如何覆盖 Ruby/Sinatra 中的默认内部服务器错误以显示 erb 文件
How to override default Internal Server Error in Ruby/Sinatra to display erb file
我想覆盖正常的 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
大多数情况下,在生产服务器上,这是已设置的,因此无需显式设置。
我想覆盖正常的 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
大多数情况下,在生产服务器上,这是已设置的,因此无需显式设置。