diff options
author | 2024-02-01 18:46:55 +0100 | |
---|---|---|
committer | 2024-02-01 18:46:55 +0100 | |
commit | 33e482f2d0a3db25cf38f9918d3e0ad1a138be63 (patch) | |
tree | 9f145e13fc97182faf7741514b3985d49c335599 /packages/integrations/netlify/src/ssr-function.ts | |
parent | 63dea241d0d9df370a1a1fe7fddcdce58c86c715 (diff) | |
download | astro-33e482f2d0a3db25cf38f9918d3e0ad1a138be63.tar.gz astro-33e482f2d0a3db25cf38f9918d3e0ad1a138be63.tar.zst astro-33e482f2d0a3db25cf38f9918d3e0ad1a138be63.zip |
fix(netlify): pre-rendered 404 pages aren't shown (#143)
Diffstat (limited to 'packages/integrations/netlify/src/ssr-function.ts')
-rw-r--r-- | packages/integrations/netlify/src/ssr-function.ts | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/packages/integrations/netlify/src/ssr-function.ts b/packages/integrations/netlify/src/ssr-function.ts index d0a963bde..33aea2717 100644 --- a/packages/integrations/netlify/src/ssr-function.ts +++ b/packages/integrations/netlify/src/ssr-function.ts @@ -13,11 +13,14 @@ const clientAddressSymbol = Symbol.for('astro.clientAddress'); export const createExports = (manifest: SSRManifest, _args: Args) => { const app = new App(manifest); - function createHandler(integrationConfig: { cacheOnDemandPages: boolean }) { + function createHandler(integrationConfig: { cacheOnDemandPages: boolean, notFoundContent?: string }) { return async function handler(request: Request, context: Context) { const routeData = app.match(request); - Reflect.set(request, clientAddressSymbol, context.ip); + if (!routeData && typeof integrationConfig.notFoundContent !== 'undefined') { + return new Response(integrationConfig.notFoundContent, { status: 404 }); + } + Reflect.set(request, clientAddressSymbol, context.ip); let locals: Record<string, unknown> = {}; const astroLocalsHeader = request.headers.get('x-astro-locals'); |