diff --git a/.changeset/orange-llamas-glow.md b/.changeset/orange-llamas-glow.md new file mode 100644 index 000000000..21aeb0da8 --- /dev/null +++ b/.changeset/orange-llamas-glow.md @@ -0,0 +1,5 @@ +--- +'astro': patch +--- + +Updates routing logic to allow multiple routes to match the same URL in SSR diff --git a/packages/astro/src/vite-plugin-astro-server/index.ts b/packages/astro/src/vite-plugin-astro-server/index.ts index 7392ac33b..6cde51b4e 100644 --- a/packages/astro/src/vite-plugin-astro-server/index.ts +++ b/packages/astro/src/vite-plugin-astro-server/index.ts @@ -251,13 +251,6 @@ async function handleRequest( async function matchRoute() { const matches = matchAllRoutes(pathname, manifest); - if (config.output === 'server' && matches.length > 1) { - throw new Error(`Found multiple matching routes for "${pathname}"! When using \`output: 'server'\`, only one route in \`src/pages\` can match a given URL. Found: - -${matches.map(({ component }) => `- ${component}`).join('\n')} -`); - } - for await (const maybeRoute of matches) { const filePath = new URL(`./${maybeRoute.component}`, config.root); const preloadedComponent = await preload({ astroConfig: config, filePath, viteServer });