ruby – 覆盖Sinatra默认的NotFound错误页面
发布时间:2020-12-16 21:48:47 所属栏目:百科 来源:网络整理
导读:有没有办法覆盖sinatra默认的NotFound错误页面(“Sinatra不知道这个ditty”)?我希望sinatra在没有找到正确的路由时,只显示一个纯粹的字符串为“方法未找到”,但是当我从路由内部引发404错误时,我希望它显示传入的错误消息. 像这样执行not_found块: not_fou
有没有办法覆盖sinatra默认的NotFound错误页面(“Sinatra不知道这个ditty”)?我希望sinatra在没有找到正确的路由时,只显示一个纯粹的字符串为“方法未找到”,但是当我从路由内部引发404错误时,我希望它显示传入的错误消息.
像这样执行not_found块: not_found do 'Method not found.' end 工程,但它不是一个有效的选项,因为我想要能够抛出我自己的NotFound错误消息从这样的路由: get '/' do begin # some processing that can raise an exception if resource not found rescue => e error 404,e.message.to_json end end 但是如预期的not_found块覆盖我的错误消息. 解决方法
也许比
the accepted answer中提出的更为优雅的解决方案是仅救出Sinatra :: NotFound,而不是使用错误(404)或not_found样式.
error Sinatra::NotFound do content_type 'text/plain' [404,'Not Found'] end 这样就阻止了你没有定义的路由的“sinatra不知道这个ditty”的默认页面,但并不妨碍显式返回[404,“Something else”] – 样式响应. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |