Next.js 13.4中permanentRedirect不是函数的问题求助
问题原因及解决办法:permanentRedirect is not a function in Next.js
问题原因
- Next.js版本过低:
permanentRedirect是Next.js 13.4版本才在App Router的next/navigation模块中新增的API,你的当前版本不包含这个导出。 - API使用场景混淆:如果你的项目用的是Pages Router,
permanentRedirect并不属于next/navigation;Pages Router的永久重定向有专门的实现方式,和App Router的API不通用。
解决办法
1. 升级Next.js到13.4及以上版本
执行以下命令升级依赖:
npm install next@latest # 或使用yarn yarn add next@latest
升级后,确保你的代码是在App Router的目录结构(app/下的组件、路由处理函数)中调用permanentRedirect,该API仅在App Router环境下可用。
2. 不升级版本时实现永久重定向
针对App Router(版本<13.4)
可以通过redirect函数手动指定301状态码实现永久重定向:
import { redirect } from 'next/navigation'; export async function GET() { redirect('/licenseKeys', 301); }
针对Pages Router
在getServerSideProps或getStaticProps中返回包含permanent: true的重定向配置:
export async function getServerSideProps() { return { redirect: { destination: '/licenseKeys', permanent: true, }, }; }
内容的提问来源于stack exchange,提问作者Victor Gorban
相关产品推荐
相关产品推荐

