Files
next.js/test/e2e/app-dir/not-found-with-pages-i18n/pages/404.tsx
Zack TannerandGitHub fc134fc170 fix: ensure app router not found works when deployed with pages i18n config (#77905)
When using both pages & app routers, during `next dev` and `next start`,
if a function triggers a 404 error, we serve the app router not found
page rather than the pages router one.

When paired with the `i18n` configuration in `next.config`, the Next.js
builder ignores the app router 404 and bundles the localized pages
router 404 pages with the deployed functions. This leads to a 500 error,
and is fixed in https://github.com/vercel/vercel/pull/13222

However, to match the dev/start handling, we also need to update the
`pages-manifest` so the builder knows to resolve `/404.html` and not the
pages router variant when deployed.

Fixes NEXT-4045

Validation:
[vtest314-e2e-tests-bkc89ab40-ztanner.vercel.app/app-dir/foo](https://vtest314-e2e-tests-bkc89ab40-ztanner.vercel.app/app-dir/foo)
2025-04-11 07:44:59 +09:00

25 lines
480 B
TypeScript

import React from 'react'
import { GetStaticProps } from 'next'
interface NotFoundProps {
message: string
}
const NotFound = ({ message }: NotFoundProps) => (
<div>
<h1>PAGES ROUTER - 404 PAGE</h1>
<p>This page is using the PAGES ROUTER</p>
<p>{message}</p>
</div>
)
export const getStaticProps: GetStaticProps<NotFoundProps> = async () => {
return {
props: {
message: 'Custom message fetched at build time',
},
}
}
export default NotFound