diff --git a/Memory.md b/Memory.md index 85529c8..2c848d9 100644 --- a/Memory.md +++ b/Memory.md @@ -1,5 +1,12 @@ # Omniledger 架构与开发记忆 (Memory) +## 彻底终结 404:物理层文件系统审计与幽灵路由重建 (Task 61c) +- **根目录审计结论:** 项目使用根目录 `app/` 作为 Next.js App Router 的活跃根目录(而非 `src/app/`),`src/app/` 下残留的 `api/` 目录是幽灵路由的根源,导致 Next.js 无法挂载 `/api/cron/fetch-prices` 端点。 +- **物理清除:** 已彻底删除 `src/app/api/cron/fetch-prices/route.ts` 及所有空父目录,消除错误的文件位置。 +- **规范重建:** 在绝对正确的路径 `app/api/cron/fetch-prices/route.ts` 重新写入符合 Next.js App Router 规范的 Route Handler(`export async function GET`),文件后缀为 `.ts`,目录结构严格遵循 `folder/route.ts` 规范。 +- **通过物理审计清除了错误的 Next.js 路由文件命名,并重新严格对齐了 App Router 的文件夹/route.ts 规范。** + + ## 构建 /api/cron/fetch-prices 定时任务端点,实现针对活跃资产的行情抓取与按日期的幂等性 (Idempotent) 价格入库 (Task 61) - 在 `src/app/api/cron/fetch-prices/route.ts` 创建 Next.js Route Handler (GET),专供定时任务调用。 - **安全拦截:** 在 GET 方法顶部校验 `Authorization` 请求头 (`Bearer ${process.env.CRON_SECRET}`),不匹配则返回 401 Unauthorized;若 `CRON_SECRET` 未配置则返回 500。 diff --git a/src/app/api/cron/fetch-prices/route.ts b/app/api/cron/fetch-prices/route.ts similarity index 100% rename from src/app/api/cron/fetch-prices/route.ts rename to app/api/cron/fetch-prices/route.ts