sinatra (= 1.4.5)
我想为特定路线呈现自定义404消息,在这种情况下,文字“未找到”'
class App < Sinatra::Application
not_found do
'You suck'
end
get '/404page' do
halt 404, 'Not found'
end
end
我发现无论我做什么,只要响应状态设置为404,就会调用not_found block
中的文本,而我真正想要的只是停止的文本。
可能是Override Sinatra default NotFound error page的副本,但我无法找到该消息。
答案 0 :(得分:0)
你可以将一个正文传递给not_found,所以你的get请求看起来就像这样。
get '/404page' do
not_found('Not found')
end
这将通过not_found方法调用halt 404, 'Not found'
。
这通常是你需要的;如果这不符合您的需求,那么您需要考虑覆盖我在下面包含的Sinatra route_missing
方法。
# No matching route was found or all routes passed. The default
# implementation is to forward the request downstream when running
# as middleware (@app is non-nil); when no downstream app is set, raise
# a NotFound exception. Subclasses can override this method to perform
# custom route miss logic.
def route_missing
if @app
forward
else
raise NotFound
end
end