在 Next.js 中,如果你想要在 getStaticProps
中实现重定向,你需要返回一个包含 redirect
对象的 response。这里有一个 getStaticProps
中实现重定向的例子:
jsxexport 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 回复