feat(migrate): 用户中心迁到 pangolin.yanmeiai.com/user/ + 域名配置化
Deploy Server / deploy-server (push) Successful in 2m55s
Deploy Site / deploy-site (push) Successful in 2m41s
Deploy Client / build-windows (push) Successful in 1m47s
Deploy Client / build-android (push) Successful in 7m39s
Deploy Client / build-macos (push) Successful in 3m40s
Deploy Client / build-ios (push) Successful in 4m48s
Deploy Client / release-deploy (push) Successful in 2m25s

原独立子域 app.yanmeiai.com → 主站子路径 /user/(用户选停用旧域名):
- 域名配置化(去硬编码):客户端 kWebUserCenterBaseUrl 收进 api_config.dart
  (dart-define 可覆盖);官网 site.ts、服务端 CORS_ORIGINS 本就是配置
- 用户中心 next.config basePath=/user;layout.tsx 的 /colors_and_type.css 手动
  拼 basePath(public 根绝对资源不自动加前缀,否则 404)
- CI 合并部署:compile-site + compile-usercenter + combine-site(用户中心并入
  dist/user/ + _headers 按 /user/* 分域:官网严格 CSP,用户中心 unsafe-inline+
  connect-src https)→ 单次部署 pangolin-site;删独立 pangolin-usercenter 部署
- 服务端 CORS 默认 origin app.yanmeiai.com → pangolin.yanmeiai.com(+ 测试)
- 客户端 web_launch 走新址 → 随 client-v1.0.62;go test CORS 过、flutter analyze 净

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_013nMthbVEmQquxBRKb9Fj8u
This commit is contained in:
wangjia
2026-07-07 17:33:22 +08:00
parent 6a46e3109a
commit 4940278ea5
12 changed files with 76 additions and 52 deletions
+5 -1
View File
@@ -12,13 +12,17 @@ export const viewport: Viewport = {
initialScale: 1,
};
// basePath 前缀(与 next.config.mjs 同源)。public/ 的根绝对资源(colors_and_type.css)
// 不会被 Next 自动加 basePath,需手动拼,否则挂到 /user/ 下会 404。
const BASE_PATH = process.env.NEXT_PUBLIC_BASE_PATH ?? '/user';
export default function RootLayout({ children }: { children: React.ReactNode }) {
return (
<html lang="en" data-theme="light" suppressHydrationWarning>
<head>
{/* 设计令牌单一真相源,原样链入(SRI 由构建期注入) */}
{/* eslint-disable-next-line @next/next/no-css-tags */}
<link rel="stylesheet" href="/colors_and_type.css" />
<link rel="stylesheet" href={`${BASE_PATH}/colors_and_type.css`} />
</head>
<body>
<UIProvider>{children}</UIProvider>
+4
View File
@@ -5,6 +5,10 @@ const nextConfig = {
output: 'export',
reactStrictMode: true,
trailingSlash: true,
// 用户中心从独立子域 app.yanmeiai.com 迁到主站子路径:与官网合并部署到同一
// CF Pages(pangolin-site),挂在 pangolin.yanmeiai.com/user/。basePath 让所有
// 路由/资源前缀带 /user;可用 NEXT_PUBLIC_BASE_PATH 覆盖(如本地 dev 置空)。
basePath: process.env.NEXT_PUBLIC_BASE_PATH ?? '/user',
// 静态导出无图片优化服务,关闭以保证产物无服务端依赖。
images: { unoptimized: true },
};
+1 -1
View File
@@ -21,7 +21,7 @@ export const SITE = {
store: { label: 'shop.pangolin.vpn' },
/** Web 用户中心(web/usercenterNext.js 静态导出 → CF Pages)。登录/订阅/设备管理入口。 */
usercenter: 'https://app.yanmeiai.com',
usercenter: 'https://pangolin.yanmeiai.com/user/',
/**
* 客户端安装包直链。控制面 pangolin-server 通过 Cloudflare Tunnel 对外暴露