summaryrefslogtreecommitdiff
path: root/packages/integrations/vercel/src
diff options
context:
space:
mode:
Diffstat (limited to 'packages/integrations/vercel/src')
-rw-r--r--packages/integrations/vercel/src/serverless/adapter.ts15
1 files changed, 13 insertions, 2 deletions
diff --git a/packages/integrations/vercel/src/serverless/adapter.ts b/packages/integrations/vercel/src/serverless/adapter.ts
index dd07e723b..db7f42805 100644
--- a/packages/integrations/vercel/src/serverless/adapter.ts
+++ b/packages/integrations/vercel/src/serverless/adapter.ts
@@ -287,9 +287,15 @@ You can set functionPerRoute: false to prevent surpassing the limit.`
excludeFiles,
maxDuration,
});
- routeDefinitions.push({ src: '/.*', dest: 'render' });
+ for (const route of routes) {
+ if (route.prerender) continue
+ routeDefinitions.push({
+ src: route.pattern.source,
+ dest: 'render',
+ })
+ }
}
-
+ const fourOhFourRoute = routes.find((route) => route.pathname === '/404');
// Output configuration
// https://vercel.com/docs/build-output-api/v3#build-output-configuration
await writeJson(new URL(`./config.json`, _config.outDir), {
@@ -303,6 +309,11 @@ You can set functionPerRoute: false to prevent surpassing the limit.`
},
{ handle: 'filesystem' },
...routeDefinitions,
+ ...fourOhFourRoute ? [{
+ src: '/.*',
+ dest: fourOhFourRoute.prerender ? '/404.html' : 'render',
+ status: 404,
+ }] : [],
],
...(imageService || imagesConfig
? {