Bird
Raised Fist0
Astroframework~10 mins

Creating pages in Astro - Visual Walkthrough

Choose your learning style10 modes available
Concept Flow - Creating pages
Start: Create .astro file
↓
Write page content in file
↓
Save file in src/pages folder
↓
Astro detects new page
↓
Builds HTML for page
↓
Page available at URL matching file name
↓
User visits page URL
You create a page by making a .astro file in the pages folder. Astro builds it into a webpage accessible by URL.
Execution Sample
Astro
---
// src/pages/about.astro
---
<html>
  <body>
    <h1>About Us</h1>
  </body>
</html>
This code creates an About page that shows a heading 'About Us' when visited.
Execution Table
StepActionFile/FolderResultNotes
1Create filesrc/pages/about.astroFile created with HTML contentPage source ready
2Save filesrc/pages/about.astroFile saved in pages folderAstro watches pages folder
3Astro buildsrc/pages/about.astroGenerates /about/index.htmlPage URL matches file name
4User visits URL/aboutBrowser shows About Us headingPage rendered in browser
5Exit-Page creation completeNo more steps
💡 Page is created and accessible at URL matching the file name.
Variable Tracker
VariableStartAfter Step 1After Step 2After Step 3Final
File contentNone<html>...</html><html>...</html>Built HTML pagePage served to user
Page URLNoneNoneNone/about/about
Key Moments - 2 Insights
Why does the page URL match the file name?
Astro uses the file name in src/pages to create the URL path, as shown in execution_table step 3.
What happens if I save the file outside src/pages?
Astro won't detect it as a page, so no URL is created. See execution_table step 2 where saving in pages folder triggers build.
Visual Quiz - 3 Questions
Test your understanding
Look at the execution table, what is the result after step 3?
AGenerates /about/index.html
BFile created with HTML content
CBrowser shows About Us heading
DFile saved in pages folder
💡 Hint
Check the 'Result' column in step 3 of the execution_table.
At which step does Astro detect the new page file?
AStep 1
BStep 3
CStep 2
DStep 4
💡 Hint
Look at the 'Action' column describing Astro build in execution_table.
If you rename about.astro to contact.astro, what changes in variable_tracker?
AFile content changes
BPage URL stays /about
CPage URL changes to /contact
DNo change
💡 Hint
See how Page URL depends on file name in variable_tracker.
Concept Snapshot
Creating pages in Astro:
- Make a .astro file in src/pages
- Write HTML or components inside
- Save file to trigger build
- URL matches file name (e.g., about.astro → /about)
- Visit URL to see your page rendered
Full Transcript
To create a page in Astro, you start by making a new .astro file inside the src/pages folder. This file contains the HTML or Astro components you want to show. When you save the file, Astro detects it and builds a matching HTML page. The URL for this page matches the file name, so about.astro becomes accessible at /about. When a user visits that URL, the browser shows the content you wrote. This process is automatic and simple, letting you add pages by just creating files in the right folder.

Practice

(1/5)
1. What happens when you create a new .astro file inside the src/pages folder in an Astro project?
easy
A. You must register the page in a routing file for it to work.
B. The file is ignored unless you import it manually in another file.
C. A new webpage is automatically created with a URL matching the file name.
D. It creates a new component but not a page.

Solution

  1. Step 1: Understand Astro's file-based routing

    Astro automatically creates routes from files in src/pages. Each .astro file becomes a page.
  2. Step 2: Connect file name to URL

    The file name directly maps to the URL path, so creating a file adds a new page accessible by that URL.
  3. Final Answer:

    A new webpage is automatically created with a URL matching the file name. -> Option C
  4. Quick Check:

    File in src/pages = new page URL [OK]
Hint: Remember: pages folder files become URLs automatically [OK]
Common Mistakes:
  • Thinking you must import page files manually
  • Confusing components with pages
  • Believing a routing config is needed
2. Which of the following is the correct way to create a homepage in Astro?
easy
A. Create a file named default.astro inside src/pages/home.
B. Create a file named home.astro inside src/pages.
C. Create a file named main.astro inside src/components.
D. Create a file named index.astro inside src/pages.

Solution

  1. Step 1: Identify homepage naming convention

    In Astro, the homepage URL is /, which maps to index.astro in src/pages.
  2. Step 2: Check folder and file placement

    The file must be directly inside src/pages and named index.astro to serve as homepage.
  3. Final Answer:

    Create a file named index.astro inside src/pages. -> Option D
  4. Quick Check:

    Homepage = src/pages/index.astro [OK]
Hint: Homepage file is always index.astro in pages folder [OK]
Common Mistakes:
  • Naming homepage file anything other than index.astro
  • Placing homepage file in components folder
  • Using nested folders incorrectly for homepage
3. Given this file src/pages/about.astro with content:
<!-- src/pages/about.astro -->
<h1>About Us</h1>
<p>Welcome to our site.</p>

What URL will display this page when running the Astro dev server?
medium
A. http://localhost:3000/about
B. http://localhost:3000/about.astro
C. http://localhost:3000/about-us
D. http://localhost:3000/pages/about

Solution

  1. Step 1: Map file path to URL

    The file about.astro inside src/pages maps to the URL path /about.
  2. Step 2: Understand URL structure

    Astro removes the file extension and folder prefix src/pages from the URL, so the URL is /about.
  3. Final Answer:

    http://localhost:3000/about -> Option A
  4. Quick Check:

    File name = URL path [OK]
Hint: File name without extension = URL path [OK]
Common Mistakes:
  • Including .astro extension in URL
  • Adding 'pages' folder name to URL
  • Guessing URL from page content
4. You created a file src/pages/contact.astro but visiting /contact shows a 404 error. What is the most likely cause?
medium
A. You forgot to restart the Astro dev server after adding the file.
B. The file is placed inside src/components instead of src/pages.
C. The file has a syntax error preventing Astro from loading it.
D. Astro requires a routing config to recognize new pages.

Solution

  1. Step 1: Verify file placement

    The most likely cause is that the file is actually inside src/components instead of src/pages. Components folder files do not create routes.
  2. Step 2: Syntax errors cause error pages, not 404

    Syntax errors show an error screen when visiting the route, not a 404 Page Not Found.
  3. Step 3: Dev server auto-reloads

    Astro detects new pages automatically, restart rarely needed.
  4. Final Answer:

    The file is placed inside src/components instead of src/pages. -> Option B
  5. Quick Check:

    404 on new page = check pages vs components folder [OK]
Hint: New page 404s? Double-check src/pages vs components folder [OK]
Common Mistakes:
  • Assuming routing config is needed
  • Not checking file syntax
  • Misplacing file in components folder
5. You want to create a nested page at URL /blog/post1. Which file structure and naming is correct in Astro?
hard
A. Create src/pages/blog/post1.astro file.
B. Create src/pages/blog-post1.astro file.
C. Create src/pages/blog/post1/index.html file.
D. Create src/pages/blog/post1.astro and add a routing config.

Solution

  1. Step 1: Understand nested routing in Astro

    Folders inside src/pages create nested URL paths automatically.
  2. Step 2: Map file to nested URL

    Placing post1.astro inside src/pages/blog creates URL /blog/post1.
  3. Step 3: Check alternatives

    Create src/pages/blog-post1.astro file creates flat URL /blog-post1. Create src/pages/blog/post1/index.html file creates no route (.html not supported as pages). Create src/pages/blog/post1.astro and add a routing config is incorrect because Astro does not require routing config.
  4. Final Answer:

    Create src/pages/blog/post1.astro file. -> Option A
  5. Quick Check:

    Nested folder + file = nested URL [OK]
Hint: Nested folders in pages map to nested URLs directly [OK]
Common Mistakes:
  • Using hyphens instead of folders for nesting
  • Adding unnecessary routing config
  • Confusing index.astro usage for nested pages
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard