优化 Vercel Fluid CPU:API加CDN缓存、缩小middleware范围、跳过公共API的Supabase身份转发

- 7条GET路由加 s-maxage + stale-while-revalidate,fetch 改为 next revalidate
- middleware matcher 从全匹配缩小到9条需auth的路径,移除 isStaticAsset
- 8条公共API路由加 includeSupabaseIdentity: false
- backend-auth getSession 为空时跳过 getUser
- subscription-help 加 I18nProvider,移除 force-dynamic → 静态预渲染
- next.config.mjs 加静态资源 immutable 缓存头

Tested: npx tsc --noEmit 通过,npm run build 通过
This commit is contained in:
2569718930@qq.com
2026-05-13 14:23:04 +08:00
parent 30b289ec8f
commit 40f231b76d
13 changed files with 112 additions and 75 deletions
+2 -3
View File
@@ -10,7 +10,6 @@ import {
import { buildCachedJsonResponse } from "@/lib/http-cache";
const API_BASE = process.env.POLYWEATHER_API_BASE_URL;
export const dynamic = "force-dynamic";
export async function GET(req: NextRequest) {
if (!API_BASE) {
@@ -27,7 +26,7 @@ export async function GET(req: NextRequest) {
});
const res = await fetch(`${API_BASE}/api/cities`, {
headers: auth.headers,
cache: "no-store",
next: { revalidate: 60 },
});
if (!res.ok) {
const raw = await res.text();
@@ -38,7 +37,7 @@ export async function GET(req: NextRequest) {
const response = buildCachedJsonResponse(
req,
data,
"no-store, max-age=0",
"public, max-age=0, s-maxage=60, stale-while-revalidate=300",
);
return applyAuthResponseCookies(response, auth.response);
} catch (error) {