搜索

首页  >  问答  >  正文

重定向到 Next.js 应用程序文件夹中的 404 Not Found 页面:分步指南

例如,我们曾经使用 getServerSideProps 来重定向到页面组件中的 404 页面,如下所示:

// pages/index.js

export async function getServerSideProps(context) {
  const placeId = context.params.placeId;
  const places = await getPlace(placeId);

  if (!places.length) { 
   return {
     notFound: true,
   }
  }

  return {
    props: {
      places[0],
    },
  };

通过 Next.js 13app 目录,我们有了服务器组件。 getServerSideProps 不再使用时如何重定向到 404 页面?

P粉553428780P粉553428780432 天前677

全部回复(1)我来回复

  • P粉805922437

    P粉8059224372023-11-04 14:17:20

    根据文档,您可以使用 notFound( ) 函数如下所示,它会渲染相应的 not-found.js 文件:

    // app/user/page.js
    
    import { notFound } from 'next/navigation';
    
    export default async function Profile({ params }) {
      const res = await fetch(`/user/${params.id}`);
      if (!res.ok) {
        notFound();
      }
      return <div>Actual Data</div>;
    }
    
    // app/user/not-found.js
    
    export default function NotFound() {
      return <p>404 Not Found</p>
    }
    

    如果没有 app/user/not-found.js 文件,则使用 app/not-found.js。如果没有 app/not-found.js,它将使用 Next.js 给出的默认值。

    回复
    0
  • 取消回复