From 0274b8d47be6ad2f5a503f70e2efdd52e43dc9c4 Mon Sep 17 00:00:00 2001 From: Tony Sullivan Date: Mon, 15 Aug 2022 17:57:10 +0000 Subject: [PATCH] SSR doesn't need to block multiple routes that match the same URL (#4329) * fix: SSR doesn't need to block multiple routes that match the same URL * chore: add changeset --- .changeset/orange-llamas-glow.md | 5 +++++ packages/astro/src/vite-plugin-astro-server/index.ts | 7 ------- 2 files changed, 5 insertions(+), 7 deletions(-) create mode 100644 .changeset/orange-llamas-glow.md diff --git a/.changeset/orange-llamas-glow.md b/.changeset/orange-llamas-glow.md new file mode 100644 index 0000000000..21aeb0da81 --- /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 7392ac33b9..6cde51b4e1 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 });