javascript 我怎样才能得到一个服务器组件上的url路径名next js 13

goucqfw6  于 2023-02-07  发布在  Java
关注(0)|答案(1)|浏览(118)

所以基本上我在应用目录中有一个服务器组件,我想得到路径名。我试着用window.location来做,但是它不起作用。有什么方法可以做到这一点吗?

waxmsbnn

waxmsbnn1#

看看https://github.com/vercel/next.js/issues/43704,pauliusuza解决了这个问题
您可以使用中间件来解决此问题

import { NextResponse } from 'next/server';

export function middleware(request: Request) {

  // Store current request url in a custom header, which you can read later
  const requestHeaders = new Headers(request.headers);
  requestHeaders.set('x-url', request.url);

  return NextResponse.next({
    request: {
      // Apply new request headers
      headers: requestHeaders,
    }
  });
}

然后从根布局内部使用它:

import { headers } from 'next/headers';

export default function RootLayout() {
  const headersList = headers();
  // read the custom x-url header
  const header_url = headersList.get('x-url') || "";
}

希望能有所帮助

相关问题