在我将layout.tsx
和page.tsx
文件移动到[lang]
文件夹之前,它看起来像这样
然后我把这两个文件移到[lang]
文件夹中,因为我需要在我的page.tsx
中获取locale参数。一切正常,除了当我第一次运行网站时,它没有重定向到/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]文件夹。
1条答案
按热度按时间lskq00tm1#
之前有
app/page.tsx
。这意味着/
路由将正常工作。然后将该文件移动到
app/[lang]/page.tsx
,这意味着/[lang]
路由可以工作。但是/
不能工作。要使
/
工作,您需要:app/page.tsx
(就像你之前做的那样),或者next.config.ts
中创建从/
到/[lang]
的重定向https://nextjs.org/docs/pages/api-reference/next-config-js/redirects