diff --git a/.workbuddy/memory/2026-08-22.md b/.workbuddy/memory/2026-08-22.md new file mode 100644 index 0000000..e6365a2 --- /dev/null +++ b/.workbuddy/memory/2026-08-22.md @@ -0,0 +1,32 @@ +# 2026-08-22 工作记忆 + +## 重构:把 SSR / SSG 请求 base URL 从 astro 文件抽离到 lib +用户要求:重新封装 SSR 和 SSG 请求,baseurl 不要放在 .astro 文件里。 + +### 改动清单 +- **新建 `src/lib/ssr.ts`**:集中 SSR(按需渲染)数据客户端。 + - `ssrBase()`:解析优先级 `API_SSR` > `PUBLIC_API_BASE` > `http://localhost:8090`(替代之前散布在 article 页面的内联写法)。 + - `getSsrArticle(id)`:包揽「缺 id / 取数失败 / 成功」三态,返回 `{article, error}`。 +- **`src/pages/en/article.astro` / `cn/article.astro`**:删除 `const API = (import.meta.env.API_SSR || PUBLIC_API_BASE || "http://localhost:8090")...`,改用 `getSsrArticle(id)`;不再给组件传 `apiBase`。 +- **`src/pages/en/items/[id].astro`**:删掉**硬编码** `const API = "http://localhost:8090"`(最严重的一处)和调试 `console.log(id/article)`,改用 `getSsrArticle(id)`。 +- **`src/components/pages/article.astro` 与 `RunwayLooksDetail.astro`**:移除 `apiBase` prop,改用 `ssrBase()` 内部解析图片绝对地址(原来 `apiBase` 只用于服务端 frontmatter 的 `full()`,浏览器 ` -