#Server island getStaticPaths
4 messages · Page 1 of 1 (latest)
Hi @safe delta. I'm kapa.ai, your friendly support bot. I will try to answer your question by searching through the knowledge base. :wave:
The error you're encountering, "getStaticPaths() function required for dynamic routes," typically occurs when you have a dynamic route (a file with [param] or [...path] in the filename) but haven't provided the necessary getStaticPaths() function in static mode.
There are two ways to fix this issue:
1. Add a getStaticPaths() function (for Static/SSG mode)
If you're building a static site (Astro's default behavior), you need to add a getStaticPaths() function to your dynamic route component:
export function getStaticPaths() {
return [
{ params: { /* your params here */ } },
// Add more objects for each route you want to generate
];
}
Each object in the array must include a params property that matches the parameters in your file name. For example, if your file is named [id].astro, each object needs an id parameter Dynamic routes.
2. Switch to Server (SSR) mode
If you want your routes to be generated on-demand rather than at build time, you can switch to SSR mode. In SSR mode, you don't need getStaticPaths() for dynamic routes.
To enable SSR, you need to:
- Install an adapter (like Node, Vercel, Netlify, etc.)
- Configure your
astro.config.mjsto use SSR mode:
import { defineConfig } from 'astro/config';
export default defineConfig({
output: 'server'
});
In SSR mode, your dynamic routes will work without getStaticPaths() Server (SSR) Mode.
If you're specifically working with server islands (components with client: directives in an SSR setup), make sure your project is properly configured for SSR as mentioned above.