Next.js 15 App Router中API路由无法获取regions数据(404错误)求助
Next.js 15 App Router中API路由无法获取regions数据(404错误)求助
兄弟我瞅了你的代码,瞬间就发现了一个超容易踩的坑!你看你的API路由文件名——写成rotue.ts了!少了个字母u啊!正确的文件名必须是route.ts(r-o-u-t-e),Next.js的App Router只会识别这个命名的文件作为路由处理文件,文件名错了直接就找不到接口,返回404完全合理!
给你整理几个修复步骤,按顺序来:
- 第一步:立刻把
src/app/api/regions/rotue.ts重命名为src/app/api/regions/route.ts,确保拼写分毫不差。 - 第二步:先手动访问
http://localhost:3000/api/regions,看看能不能正常返回你定义的regions数组JSON。如果能返回,那问题基本就解决了。 - 第三步:如果还是有问题,建议把
getRegions里的fetch路径改成相对路径试试:
因为在Next.js的服务器组件里,用相对路径fetch会自动拼接正确的域名,能避免async function getRegions() { const res = await fetch('/api/regions', { cache: "no-store", }); if (!res.ok) { throw new Error("Failed to fetch regions"); } return res.json(); }NEXT_PUBLIC_API_URL配置错误的问题。
另外你提到test的路由能正常访问,对比一下就明白——test的路由文件名是正确的route.js,而regions的文件名写错了,这就是核心问题所在!
备注:内容来源于stack exchange,提问作者Kyle Ethan
相关产品推荐
相关产品推荐

