AstroJS混合模式下Server Endpoint返回404问题排查
AstroJS Hybrid模式下API端点返回404的排查原因
以下是几个常见的问题原因及排查方向:
API端点文件路径错误
Astro要求API端点必须放在src/pages/api/目录下,确保你的test.ts文件路径是src/pages/api/test.ts,而不是项目根目录的api/文件夹或其他位置。Astro只会识别src/pages/api/下的文件作为服务端端点。端点导出格式不符合要求
Astro的API端点需要明确导出对应HTTP方法的函数(比如GET/POST),或者默认导出符合规范的处理函数。示例正确写法:export async function GET() { return new Response(JSON.stringify({ data: 'test success' }), { headers: { 'Content-Type': 'application/json' }, }); }如果导出的是普通函数而非指定HTTP方法,Astro无法将其识别为有效端点。
Node适配器或Hybrid模式配置异常
检查astro.config.mjs的配置是否正确,确保已安装并正确配置@astrojs/node适配器:import { defineConfig } from 'astro/config'; import node from '@astrojs/node'; export default defineConfig({ output: 'hybrid', adapter: node({ mode: 'standalone', }), });若未安装适配器,执行
npm install @astrojs/node后重启开发服务器。开发服务器缓存干扰
停止npm run dev进程,删除项目根目录下的node_modules/.astro缓存文件夹,再重新启动开发服务器。旧缓存可能导致新添加的API端点未被加载。路由匹配逻辑冲突(关联404警告)
/404路径匹配警告通常是因为项目缺少src/pages/404.astro自定义404页面,但这不会直接导致API端点404。不过需要检查是否存在全局路由中间件、重定向规则等,是否意外拦截了/api/test的请求。
内容的提问来源于stack exchange,提问作者cgeopapa
相关产品推荐
相关产品推荐

