Esiste un modo per sovrascrivere la pagina di errore NotFound predefinita di sinatra ("Sinatra non conosce questa canzoncina")? Voglio che sinatra mostri solo una stringa semplice come "Metodo non trovato" quando non trova il percorso corretto, ma quando sollevo un errore 404 dall'interno di una rotta voglio che mostri il messaggio di errore passato.Override Sinatra default NotFound error page
Attuazione del blocco not_found in questo modo:
not_found do
'Method not found.'
end
opere, ma la sua non è un'opzione valida perché voglio essere in grado di lanciare i miei messaggi di errore NotFound dalle rotte come questo:
get '/' do
begin
# some processing that can raise an exception if resource not found
rescue => e
error 404, e.message.to_json
end
end
Ma come previsto il blocco not_found sovrascrive il mio messaggio di errore.
I, che funziona ma non per percorsi ineguagliati, quindi se ho un'applicazione sinatra come quella che hai postato e cerco di raggiungere per esempio '/ this_is_not_a_present_route' vedo ancora la pagina sinatra predefinita al posto del messaggio di errore. –
Quindi, se hai una richiesta per un percorso inesistente, usa la route 'not_found'. Nell'oggetto richiesta, vi è 'request.path' che ti darà' 'this_is_not_a_present_route'' nel tuo esempio. Ho aggiornato anche l'esempio. –
Ciao, il problema è come non ignorare gli altri 404 messaggi di errore generati da percorsi interni. In questo modo presenterà sempre request.path se provi a raggiungere una route non implementata, ma la mostrerà se viene generato un errore 404 dai percorsi interni. –