diff --git a/packages/next/next-server/server/config.ts b/packages/next/next-server/server/config.ts index fb47ecb9df8743a..5fe42e75d34340d 100644 --- a/packages/next/next-server/server/config.ts +++ b/packages/next/next-server/server/config.ts @@ -52,7 +52,7 @@ const defaultConfig: { [key: string]: any } = { reactMode: 'legacy', workerThreads: false, basePath: '', - static404: false, + static404: true, }, future: { excludeDefaultMomentLocales: false, diff --git a/packages/next/next-server/server/next-server.ts b/packages/next/next-server/server/next-server.ts index 4c7b25dddd9c581..062e51422cf45b7 100644 --- a/packages/next/next-server/server/next-server.ts +++ b/packages/next/next-server/server/next-server.ts @@ -1116,7 +1116,7 @@ export default class Server { let result: null | LoadComponentsReturnType = null // use static 404 page if available and is 404 response - if (this.nextConfig.experimental.static404 && err === null) { + if (this.nextConfig.experimental.static404 && res.statusCode === 404) { try { result = await this.findPageComponents('/_errors/404') } catch (err) { diff --git a/test/integration/static-404/test/index.test.js b/test/integration/static-404/test/index.test.js index 5e466ce9c808079..7d0fde74ad429b7 100644 --- a/test/integration/static-404/test/index.test.js +++ b/test/integration/static-404/test/index.test.js @@ -20,7 +20,6 @@ const static404 = join( const appPage = join(appDir, 'pages/_app.js') const errorPage = join(appDir, 'pages/_error.js') const buildId = `generateBuildId: () => 'test-id'` -const experimentalConfig = `experimental: { static404: true }` let app let appPort @@ -34,7 +33,10 @@ describe('Static 404 page', () => { describe('With config disabled', () => { it('should not have exported static 404 page', async () => { - await fs.writeFile(nextConfig, `module.exports = { ${buildId} }`) + await fs.writeFile( + nextConfig, + `module.exports = { ${buildId}, experimental: { static404: false } }` + ) await nextBuild(appDir) expect(await fs.exists(static404)).toBe(false) }) @@ -42,10 +44,7 @@ describe('Static 404 page', () => { describe('With config enabled', () => { beforeEach(() => - fs.writeFile( - nextConfig, - `module.exports = { ${buildId}, ${experimentalConfig} }` - ) + fs.writeFile(nextConfig, `module.exports = { ${buildId} }`) ) it('should export 404 page without custom _error', async () => {