next.js 13 服务器组件中的访问域和完整路径

Soh*_*ail 5 next.js13

如何使用应用程序目录访问 Next.js 13 中服务器组件中的域名和完整路径?在 Next.js 的早期版本(例如版本 12)中,我可以使用 getServerSideProps 函数中的上下文来执行此操作,但应用程序目录中不再支持此操作。

我有一个小型 SaaS 应用程序,其中不同的域可以指向相同的 Next.js 代码,通过传递域和路径名,我可以从该特定帐户的 API 获取数据,就像我认为的 WordPress 多站点一样。

在 Next.js 13 中是否有更好的方法通过应用程序目录执行此操作?请帮忙。

Soh*_*ail 9

你可以这样做:

import { headers } from 'next/headers';

export default function Home() {
  const headersList = headers();
  
  headersList.get('host'); // to get domain
  headersList.get('next-url'); // to get url

  return <div>....</div>
}
Run Code Online (Sandbox Code Playgroud)

  • 请注意,[在布局或页面中使用它会在请求时选择进入动态渲染的路线](https://nextjs.org/docs/app/api-reference/functions/headers#:~:text=Using% 20it%20in%20a%20layout%20or%20page%20will%20opt%20a%20route%20into%20dynamic%20rendering%20at%20request%20time) (2认同)