乐闻世界logo
搜索文章和话题

Nextjs 如何在 getStaticProps 中重定向?

4 个月前提问
3 个月前修改
浏览次数41

1个答案

1

在 Next.js 中,如果你想要在 getStaticProps 中实现重定向,你需要返回一个包含 redirect 对象的 response。这里有一个 getStaticProps 中实现重定向的例子:

jsx
export async function getStaticProps(context) { // ... 一些逻辑判断,比如根据内容是否存在来决定是否重定向 // 如果需要重定向 if (someCondition) { return { redirect: { destination: '/some-other-page', // 重定向的目标路由 permanent: false, // 如果是永久重定向设置为 true }, revalidate: 10, // 在生产环境中,下次请求后过多少秒后可以再次生成页面 (可选) }; } // ... 其他的 props return { props: {}, // 正常的页面 props // revalidate: 10, // 这也可以包括在这里来定义在生产环境中的 ISR (可选) }; }

这里的 someCondition 是一个占位符,表示你的逻辑条件。如果这个条件是真,那么函数会返回一个 redirect 对象,并且 Next.js 将会重定向到 destination 指定的 URL。permanent 属性告诉浏览器这个重定向是永久的 (true) 还是临时的 (false)。如果设置为 true,浏览器和搜索引擎会缓存这个重定向。

请注意,getStaticProps 只在构建时运行,所以重定向的逻辑只能基于构建时可知的信息。如果需要基于每个请求的数据来进行重定向,应考虑使用 getServerSideProps,它在每个请求时都会运行。

2024年6月29日 12:07 回复

你的答案