Có cách nào để ghi đè lên trang lỗi mặc định của Notatra không (Lỗi "Sinatra không biết ditty này")? Tôi muốn sinatra chỉ hiển thị một chuỗi đơn giản là "Phương thức không tìm thấy" khi nó không tìm thấy con đường thích hợp, nhưng khi tôi nâng lỗi 404 từ bên trong một tuyến đường, tôi muốn nó hiển thị thông báo lỗi được truyền vào.Ghi đè lên trang lỗi mặc định Không hợp lệ của Sinatra
Thực hiện khối not_found như thế này:
not_found do
'Method not found.'
end
công trình, nhưng không phải là một lựa chọn hợp lệ của nó kể từ khi tôi muốn để có thể ném các thông báo lỗi notfound của riêng tôi từ các tuyến đường như thế này:
get '/' do
begin
# some processing that can raise an exception if resource not found
rescue => e
error 404, e.message.to_json
end
end
Nhưng như khối not_found dự kiến sẽ ghi đè thông báo lỗi của tôi.
Tôi hoạt động nhưng không phải cho các tuyến đường chưa từng có, vì vậy nếu tôi có ứng dụng sinatra giống như ứng dụng bạn đã đăng và cố gắng truy cập ví dụ: '/ this_is_not_a_present_route' Tôi vẫn thấy trang mặc định của sinatra thay vì thông báo lỗi. –
Vì vậy, nếu bạn có yêu cầu cho một tuyến đường không tồn tại, sau đó sử dụng tuyến đường 'not_found'. Trong đối tượng yêu cầu, có 'request.path' sẽ cung cấp cho bạn' 'this_is_not_a_present_route'' trong ví dụ của bạn. Tôi cũng cập nhật ví dụ. –
Xin chào, vấn đề là làm thế nào để không ghi đè lên các thông báo lỗi 404 khác được nêu ra từ các tuyến bên trong. Bằng cách đó, nó sẽ luôn hiển thị request.path nếu cố gắng tiếp cận một tuyến đường không được triển khai nhưng sẽ hiển thị nó nếu một số lỗi 404 được nâng lên từ các tuyến đường bên trong. –