Improve 404 handling for browser routes#17
Open
moab01567 wants to merge 1 commit into
Open
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
This PR improves the browser experience for unknown routes by adding a simple custom 404 HTML page.
Before this change, unknown routes such as
/jnfjareturned the default FastAPI404 Not FoundJSON response in the browser. While this is technically correct, it gives a poor user experience for users who access an invalid URL through the browser.The new custom 404 page explains that the requested page could not be found and gives the user a link back to the homepage. The response still uses status code
404, so the application does not hide the fact that the URL is invalid.Why not redirect?
I considered redirecting unknown routes back to
/, but chose not to do that because it could hide real routing errors. A custom 404 page keeps the error visible while making it easier for users to understand what happened.Manual testing
http://localhost:8004still renders the homepage.http://localhost:8004/jnfjashows the custom 404 page./.