Project structure helps organize your files so your app is easy to build and maintain.
Project structure in Svelte
my-svelte-app/
├── static/
│ ├── global.css
│ └── favicon.png
├── src/
│ ├── routes/
│ │ ├── +page.svelte
│ │ └── about/+page.svelte
│ ├── lib/
│ │ └── Button.svelte
│ └── app.html
├── package.json
└── svelte.config.jsstatic/ holds static files like images and global styles.
src/ contains your app code: pages in routes/, reusable parts in lib/.
src/routes/+page.svelte
/about.src/routes/about/+page.svelte
src/lib/Button.svelte
This simple Svelte component shows a button that counts clicks. It would live inside a file like src/routes/+page.svelte.
It uses accessible button markup with an aria-label and updates the count on each click.
<script> let count = 0; function increment() { count += 1; } </script> <button on:click={increment} aria-label="Increment counter"> Clicked {count} {count === 1 ? 'time' : 'times'} </button>
Keep your src/routes folder organized by pages and subpages for easy navigation.
Use src/lib for components you want to reuse in many places.
Static files like images and fonts go in static so they load fast.
Project structure organizes your app files clearly.
src/routes holds pages, src/lib holds reusable components.
static stores static assets like images and styles.
Practice
Solution
Step 1: Understand folder purpose
src/libis designed for reusable components and utilities.Step 2: Compare with other folders
src/routesholds pages,public/assetsis for static files, andstatic/componentsis not a standard folder.Final Answer:
src/lib-> Option CQuick Check:
Reusable components =src/lib[OK]
- Putting reusable components in src/routes
- Using public folder for components
- Creating non-standard folders like static/components
Solution
Step 1: Identify the folder for pages
In SvelteKit,src/routesis the folder where page components live.Step 2: Check other options
src/libis for reusable components,public/pagesandsrc/pagesare not standard folders for pages.Final Answer:
src/routes-> Option DQuick Check:
Pages go in src/routes [OK]
- Confusing src/lib with src/routes
- Placing pages in public folder
- Using non-standard src/pages folder
project/ ├─ public/ │ └─ logo.png ├─ src/ │ ├─ lib/ │ │ └─ Button.svelte │ └─ routes/ │ └─ index.svelte
Where should you import the
Button.svelte component to use it on the homepage?Solution
Step 1: Understand folder hierarchy
src/routes/index.svelteis one level deeper thansrc/lib/Button.svelte, so import path is../lib/Button.svelte.Step 2: Eliminate wrong paths
../../public/logo.pngis for static assets, not components;./Button.svelteassumes Button is in routes folder;public/Button.svelteis incorrect location.Final Answer:
From ../lib/Button.svelte inside src/routes/index.svelte -> Option BQuick Check:
Import reusable components with relative path ../lib [OK]
- Trying to import components from public folder
- Using wrong relative path like ./Button.svelte
- Confusing static assets with components
src/lib/images and tried to use it in your SvelteKit page, but it doesn't load in the browser. What is the most likely reason?Solution
Step 1: Understand static asset serving
SvelteKit serves static files only from thepublicfolder, so files insrc/lib/imagesare not accessible directly.Step 2: Check other options
Images don't belong insrc/routes, renaming to .svelte is incorrect, and file size doesn't prevent loading if path is correct.Final Answer:
Static assets must be inside the public folder to be served correctly. -> Option AQuick Check:
Static files go in public folder [OK]
- Placing images inside src/lib or src/routes
- Renaming images as .svelte files
- Assuming large file size causes loading failure
1. All page routes are inside
src/routes.2. Reusable UI components are inside
src/lib/components.3. Static assets like images and fonts are inside
public/assets.Which folder structure below correctly reflects this setup?
Solution
Step 1: Verify static assets location
Static assets like images and fonts must be insidepublic/assetsto be served correctly.Step 2: Check reusable components and routes
Reusable components go insidesrc/lib/components, and pages go insidesrc/routes.Step 3: Match folder structure
project/ ├─ public/ │ └─ assets/ │ ├─ images/ │ └─ fonts/ ├─ src/ │ ├─ lib/ │ │ └─ components/ │ │ └─ Button.svelte │ └─ routes/ │ └─ index.svelte
matches all requirements exactly; other options place assets or components incorrectly.Final Answer:
Option A folder structure -> Option AQuick Check:
Correct folder setup =project/ ├─ public/ │ └─ assets/ │ ├─ images/ │ └─ fonts/ ├─ src/ │ ├─ lib/ │ │ └─ components/ │ │ └─ Button.svelte │ └─ routes/ │ └─ index.svelte
[OK]
- Putting static assets inside src folder
- Placing components in public folder
- Using non-standard folders like pages instead of routes
Ready to prove it?
Pass the test and this pattern moves unknown
