📖 Scenario: You are building a website using Astro. You want to create a friendly page that visitors see when they try to visit a page that does not exist (a 404 page). You also want to create a general error page for other errors.
🎯 Goal: Build a custom 404.astro page and a general error.astro page that show helpful messages to users when something goes wrong or a page is not found.
📋 What You'll Learn
Create a 404.astro file with a message for page not found
Create an error.astro file that accepts an error prop and displays its message
Use semantic HTML elements and accessible text
Add a link back to the homepage on both pages
💡 Why This Matters
🌍 Real World
Custom 404 and error pages improve user experience by guiding visitors when something goes wrong or a page is missing.
💼 Career
Web developers often create these pages to maintain professionalism and usability in websites and web apps.
Progress0 / 4 steps
1
Create the 404 Page
Create a file called 404.astro. Inside it, write HTML with a <main> element containing an <h1> with the text "Page Not Found" and a <p> with the text "Sorry, the page you are looking for does not exist.".
Astro
Hint
Use semantic HTML tags like <main>, <h1>, and <p> to structure your 404 page content.
2
Add a Link to the Homepage on 404 Page
In 404.astro, below the paragraph, add an <a> tag with href="/" and the text "Go back to Home".
Astro
Hint
Use an anchor tag with href="/" to link back to the homepage.
3
Create the Error Page Component
Create a file called error.astro. At the top, declare a prop called error. Inside the <main> element, add an <h1> with the text "An Error Occurred" and a <p> that displays the error message using {error.message}.
Astro
Hint
Use Astro.props to get the error prop and display its message inside a paragraph.
4
Add a Link to the Homepage on Error Page
In error.astro, below the paragraph showing the error message, add an <a> tag with href="/" and the text "Return to Home".
Astro
Hint
Add an anchor tag linking back to the homepage for easy navigation.
Practice
(1/5)
1. What is the main purpose of a 404.astro page in an Astro project?
easy
A. To speed up the loading of the homepage
B. To display the site map automatically
C. To handle user login and authentication
D. To show a friendly message when a user visits a page that does not exist
Solution
Step 1: Understand the role of 404 pages
A 404 page appears when a user tries to visit a page that the website cannot find.
Step 2: Identify the purpose in Astro
In Astro, 404.astro is used to show a friendly message for missing pages.
Final Answer:
To show a friendly message when a user visits a page that does not exist -> Option D
Quick Check:
404 page = friendly missing page message [OK]
Hint: 404 pages show missing page messages [OK]
Common Mistakes:
Thinking 404 pages speed up the homepage
Confusing 404 pages with login pages
Assuming 404 pages show site maps
2. Which file name should you create in an Astro project to automatically handle 404 errors?
easy
A. error.astro
B. notfound.astro
C. 404.astro
D. page404.astro
Solution
Step 1: Recall Astro's naming convention for 404 pages
Astro uses the exact file name 404.astro to detect and serve 404 error pages automatically.
Step 2: Compare options with the required file name
Only 404.astro matches the required name; others won't be recognized automatically.
Final Answer:
404.astro -> Option C
Quick Check:
404 page file = 404.astro [OK]
Hint: Use exact file name 404.astro for error pages [OK]
Common Mistakes:
Using names like error.astro or notfound.astro
Adding prefixes or suffixes to 404 file name
Assuming any file with '404' works
3. Given this 404.astro code snippet, what will the user see when visiting a missing page?
<!-- 404.astro -->
<h1>Oops! Page not found.</h1>
<p>Try going back to the <a href='/'>homepage</a>.</p>
medium
A. A blank page with no message
B. A message saying 'Oops! Page not found.' with a link to homepage
C. An error message with code 500
D. The homepage content without any error message
Solution
Step 1: Read the 404.astro content
The code shows a heading with 'Oops! Page not found.' and a paragraph with a homepage link.
Step 2: Understand what Astro renders on missing pages
Astro will display this content when a user visits a missing page.
Final Answer:
A message saying 'Oops! Page not found.' with a link to homepage -> Option B
Quick Check:
404 page shows friendly message + homepage link [OK]
Hint: 404 page content shows on missing pages [OK]
Common Mistakes:
Expecting a blank page instead of message
Confusing 404 with server error 500
Thinking homepage content shows on 404
4. You created a 404.astro page but it does not show when visiting a missing page. What is the most likely mistake?
medium
A. The 404.astro file is inside the src/components folder
B. The file is named 404.html instead of 404.astro
C. The homepage link is missing inside the 404 page
D. The project does not have a package.json file
Solution
Step 1: Check file location requirements in Astro
Astro expects 404.astro to be in the root of the src/pages folder, not inside components.