This simple Nuxt 3 component shows a static page. The config tells Nuxt to build static HTML files during build time.
Vue
<template>
<main>
<h1>Welcome to My Static Nuxt Site</h1>
<p>This page is pre-built and loads very fast.</p>
</main>
</template>
<script setup>
// No special code needed for static generation here
</script>
// nuxt.config.tsexportdefault defineNuxtConfig({
ssr: true,
nitro: {
preset: 'static'
}
})
OutputSuccess
Important Notes
Static sites do not need a running server to show pages.
Dynamic data can be fetched at build time using useAsyncData or useFetch.
Remember to rebuild your site when content changes to update static pages.
Summary
Static site generation builds pages before users visit.
Nuxt uses nitro.preset: 'static' for this.
Static sites are fast, SEO-friendly, and easy to host.
Practice
(1/5)
1. What does static site generation (SSG) in Nuxt do before users visit the site?
easy
A. Requires a server to render pages on demand
B. Generates pages dynamically on each user request
C. Builds all pages ahead of time as static files
D. Only builds the homepage statically
Solution
Step 1: Understand static site generation concept
Static site generation means creating all pages before users visit, so they are ready as static files.
Step 2: Apply to Nuxt behavior
Nuxt with static target builds all pages ahead, not on demand or partially.
Final Answer:
Builds all pages ahead of time as static files -> Option C
Quick Check:
SSG = Pre-build pages [OK]
Hint: SSG means pre-building pages before user visits [OK]
Common Mistakes:
Confusing static generation with server-side rendering
Thinking pages build on each request
Assuming only homepage is static
2. Which Nuxt configuration option enables static site generation?
easy
A. target: 'static'
B. mode: 'universal'
C. ssr: false
D. buildModules: ['@nuxt/static']
Solution
Step 1: Identify Nuxt config for static generation
Nuxt uses target: 'static' to enable static site generation.
Step 2: Check other options
ssr: false disables server-side rendering but does not enable static generation; mode is deprecated; buildModules with '@nuxt/static' is invalid.
Final Answer:
target: 'static' -> Option A
Quick Check:
Static target = 'static' [OK]
Hint: Look for target set to 'static' in config [OK]
Common Mistakes:
Using ssr: false instead of target: 'static'
Confusing mode with target
Assuming buildModules enables static
3. Given this Nuxt config snippet, what will be the output folder after running nuxt generate?
The generate.dir option sets the output folder for static files.
Step 2: Apply config values
Since dir: 'public' is set, the static files will be generated inside a folder named 'public'.
Final Answer:
A folder named 'public' will be created -> Option D
Quick Check:
generate.dir = output folder [OK]
Hint: generate.dir sets output folder name [OK]
Common Mistakes:
Assuming default 'dist' folder is always used
Confusing generate.dir with buildDir
Thinking no folder is created
4. You run nuxt generate but your dynamic routes are missing from the static site. What is the likely cause?
medium
A. You forgot to add the dynamic routes in generate.routes
B. You set target to 'server' instead of 'static'
C. You did not install the Nitro preset
D. You used ssr: false in config
Solution
Step 1: Understand dynamic routes in static generation
Nuxt needs explicit dynamic routes listed in generate.routes to pre-build them.
Step 2: Check other options
target: 'server' disables static generation but does not explain missing dynamic routes if static is used; Nitro preset is internal; ssr: false disables SSR but not related to dynamic routes generation.
Final Answer:
You forgot to add the dynamic routes in generate.routes -> Option A
Quick Check:
Dynamic routes need generate.routes [OK]
Hint: Add dynamic routes in generate.routes to include them [OK]
Common Mistakes:
Assuming dynamic routes are auto-detected
Confusing ssr: false with static target
Thinking Nitro preset fixes missing routes
5. You want to build a blog with Nuxt static generation. Your posts are fetched from an API at build time. Which approach correctly generates static pages for each post?
hard
A. Fetch posts only on client side with mounted() and rely on client rendering
B. Use asyncData to fetch posts and list them, then add dynamic routes in generate.routes to pre-build each post page
C. Set ssr: false and generate pages dynamically on server
D. Use fetch() in components without configuring generate.routes
Solution
Step 1: Fetch posts at build time
Using asyncData fetches posts during build, enabling static generation.
Step 2: Configure dynamic routes for posts
Adding post URLs in generate.routes tells Nuxt to pre-build each post page as static HTML.
Step 3: Evaluate other options
Client-side fetching delays content and is not static; ssr: false disables server rendering; fetch() without generate.routes won't pre-build dynamic pages.
Final Answer:
Use asyncData and generate.routes to pre-build each post page -> Option B