Next.js 13 App Router创建GET请求Serverless函数遇404问题求助
问题原因及解决办法
你遇到的404是因为App Router的API路由规则和Pages Router不一样:
- 在Pages Router里,
pages/api/xxx.ts对应访问路径/api/xxx; - 但在App Router中,
route.ts是所在目录的入口文件,文件本身不会作为路径的一部分。你现在把代码放在app/api/route.ts,对应的访问路径是localhost:3000/api,而不是/api/route。
两种修正方案:
方案1:保留现有文件,修改访问路径
直接访问 localhost:3000/api 就能正常获取返回内容,不需要改动代码文件。
方案2:调整文件结构,实现/api/route端点
如果确实需要/api/route这个路径,要重新创建文件结构:
- 在
app/api目录下新建一个route子目录 - 把你的代码放到
app/api/route/route.ts文件中 - 重启开发服务器后,访问
localhost:3000/api/route就能正常访问了
额外注意事项
- 确保文件名是小写的
route.ts,拼写错误(比如写成routes.ts)会导致404 - 如果修改文件后还是不行,重启一下Next.js开发服务器,避免热重载延迟
内容的提问来源于stack exchange,提问作者Th0rgal
相关产品推荐
相关产品推荐

