Next.js 13路由处理器GET请求无响应且报404问题求助
问题排查与解决
核心原因:路由路径大小写不匹配
你的404错误本质是Next.js App Router对路由路径大小写严格敏感,但项目结构中API路由文件夹是app/api/Ingresos(首字母大写),而请求路径是http://localhost:3000/api/ingresos(全小写),两者不匹配导致路由无法被识别。
即使Windows文件系统不区分大小写,Next.js的路由匹配逻辑是严格区分大小写的,因此会返回404。
解决方案
- 重命名路由文件夹:将
app/api/Ingresos文件夹改为全小写的app/api/ingresos,确保和请求路径完全一致。 - 重启Next.js开发服务器:文件结构变更后,热更新可能无法及时识别,重启服务器让新的路由结构生效。
额外排查点
如果问题仍存在,可以检查以下内容:
- 确认
route.ts中导出的请求方法是大写的GET:Next.js要求路由处理器的方法名必须大写(如GET/POST),小写的get会被忽略。你的代码中这部分是正确的,但可以再次确认。 - 验证PocketBase连接是否正常:在
GET函数开头添加日志输出,比如:
如果重启后请求能触发这条日志,说明路由已正常匹配,问题可能出在PocketBase的请求逻辑中(比如权限问题、集合名称大小写等)。export async function GET() { console.log("API route triggered"); // 添加日志 const pb = new PocketBase('http://127.0.0.1:8090'); // ... 剩余代码 } - 检查Next.js版本:确保使用的是Next.js 13.2及以上版本,早期版本的App Router可能存在路由匹配的bug。
内容的提问来源于stack exchange,提问作者Vladimirzb
相关产品推荐
相关产品推荐

