在我将
layout.tsx
和 page.tsx
文件移动到 [lang]
文件夹之前,它看起来像这样
然后我将这两个文件移动到
[lang]
文件夹中,因为我需要在我的 page.tsx
中获取区域设置参数。一切正常,除了当我第一次运行网站时,它没有重定向到 /en/bootcamps
,正如我在 page.tsx 中配置的那样:
import { redirect } from "next/navigation"; const redirectToBootcamp = async () => {redirect(`en/bootcamps`);};export default async function Home({ params }: { params: { lang: string } }) { await redirectToBootcamp();return <main>{JSON.stringify(params)}</main>;}
它转到
/
并给出 404 错误。我怎样才能让它重定向到我想要的地方,并仍然将布局和页面文件保留在 [lang] 文件夹中。
早些时候你有
app/page.tsx
。这意味着 /
路线可以正常工作。
然后您将该文件移至
app/[lang]/page.tsx
,这意味着 /[lang]
路线将起作用。但是 /
不会再工作了。
要使
/
正常工作,您需要:
app/page.tsx
(就像之前一样),或者/
中创建从
/[lang]
到
next.config.ts
async redirects() {
return [
{
source: '/',
destination: '/en',
},
]
},
https://nextjs.org/docs/pages/api-reference/next-config-js/redirects