NextJS:有没有一种方法可以在不应用子路径路由的情况下使用i18n区域设置检测?

igetnqfo  于 12个月前  发布在  其他
关注(0)|答案(1)|浏览(82)

所以我在我的项目中实现了Next的i18 n路由(https://nextjs.org/docs/advanced-features/i18n-routing#automatic-locale-detection),现在我可以在getServerSideProps props中访问自动检测的locale,这很棒,但现在我的应用的每个路由都以/en,/es等为前缀。
有没有一种方法可以在不将前缀应用于所有路由的情况下仍然检测到区域设置?
例如,如果我创建了一个新的/blog页面,我希望仍然在getServerSideProps props中检测locale,但不会变成/es/blog路由。
先谢了。

wkftcu5l

wkftcu5l1#

在文档的这一部分中有一个关于如何实现这一点的提示:


的数据
稍后,在同一页面上,他们向您展示了如何阻止为特定区域设置生成页面:

export async function getStaticProps({ locale }) {
  // Call an external API endpoint to get posts.
  // You can use any data fetching library
  const res = await fetch(`https://.../posts?locale=${locale}`)
  const posts = await res.json()
 
  if (posts.length === 0) {
    return {
      notFound: true,
    }
  }
 
  // By returning { props: posts }, the Blog component
  // will receive `posts` as a prop at build time
  return {
    props: {
      posts,
    },
  }
}

字符串
我还没有测试过这个,但是如果你在你的默认区域设置(不应用子路径)上提供所有页面,并且不为其他区域设置生成所有页面,这应该可以解决你的问题,即你可以使用context检测区域设置,但选择不生成子路径页面。

相关问题