소스 검색

docs: 发布目标切换到独立 Product ID zC4W4aVTCo (obs://nova-cloud/dev/zC4W4aVTCo/ + app.fmode.cn 域名组)

Co-Authored-By: Claude Code
liuyuyang 6 일 전
부모
커밋
a0d827eb24
4개의 변경된 파일24개의 추가작업 그리고 19개의 파일을 삭제
  1. 8 5
      .fmode/config.json
  2. 3 0
      CHANGELOG.md
  3. 4 4
      CLAUDE.md
  4. 9 10
      README.md

+ 8 - 5
.fmode/config.json

@@ -10,17 +10,20 @@
   },
   "deploy": {
     "static": {
-      "bucket": "www-fmode.cn",
+      "bucket": "nova-cloud",
       "endpoint": "obs.cn-south-1.myhuaweicloud.com",
-      "prefix": "aipm-lesson/fmode-app-mirror/",
-      "url": "https://fmode.cn/aipm-lesson/fmode-app-mirror/index.html",
+      "prefix": "dev/zC4W4aVTCo/",
+      "url": "https://app.fmode.cn/dev/zC4W4aVTCo/index.html",
       "spaFallback": "404.html",
-      "cdnRefreshScript": "/opt/data/git-repos/fmode-app/scripts/refresh-fmode-cn.js"
+      "baseHref": "/dev/zC4W4aVTCo/",
+      "cdnRefreshScript": "/opt/data/git-repos/fmode-app/scripts/refresh-cdn.js",
+      "cdnDomainGroup": "app.fmode.cn",
+      "note": "独立 Product ID zC4W4aVTCo (DevApp aHmSBldRYD),勿发 fmode.cn/aipm-lesson/"
     }
   },
   "capabilities": {
     "gitArchive": { "status": "live", "note": "幂等开户 /gogs/admin/proxy 已验证 (200 幂等补发 token);git ls-remote 验证 push" },
-    "obsStatic": { "status": "live", "note": "obsutil AK 路径 (第2级凭据链) + setacl public-read + refresh-fmode-cn.js (fmode.cn 域名组)" },
+    "obsStatic": { "status": "live", "note": "obsutil 逐文件上传 obs://nova-cloud/dev/zC4W4aVTCo/ + content-type + setacl public-read + refresh-cdn.js (app.fmode.cn 域名组)" },
     "parseBackend": { "status": "live", "note": "server.fmode.cn/parse appId=ncloudmaster 实测可达 (401=无效凭据, 端点活着); 登录/注册/个人中心走 Parse SDK" },
     "deploySts": { "status": "not-available", "note": "POST /api/apig/deploy/huaweicloud 对本 session 返回 403 没有权限;本仓静态发布走 obsutil AK 路径" },
     "storageCredentials": { "status": "planned", "note": "04-API设计.md /api/storage/credentials 规划中未上线,跳过" }

+ 3 - 0
CHANGELOG.md

@@ -15,3 +15,6 @@
 
 ### Security
 - 凭据零暴露:sessionToken / Gogs token / OBS AK/SK 均不入库不入报告。
+
+### Changed
+- 发布目标改为独立 Product ID `zC4W4aVTCo`(DevApp aHmSBldRYD):`--base-href /dev/zC4W4aVTCo/`,产物上传 `obs://nova-cloud/dev/zC4W4aVTCo/`(逐文件 content-type + public-read),CDN 刷 app.fmode.cn 域名组。体验链接 `https://app.fmode.cn/dev/zC4W4aVTCo/index.html`,无头浏览器逐页验收通过(tab1/tab2/tab3/登录页/深链 200)。

+ 4 - 4
CLAUDE.md

@@ -6,7 +6,7 @@
 
 - 提取自 `git.fmode.cn/2205106/FashionMagicMirror`(源仓致谢,业务代码保留)
 - 归档仓:`https://git.fmode.cn/fmode-18691770343/fmode-app-mirror`(公开)
-- 线上:`https://fmode.cn/aipm-lesson/fmode-app-mirror/index.html`
+- 线上:`https://app.fmode.cn/dev/zC4W4aVTCo/index.html`(独立 Product ID zC4W4aVTCo,Nova Admin 已登记;勿发 fmode.cn/aipm-lesson/)
 
 ## 构建纪律
 
@@ -17,9 +17,9 @@
 
 ## 部署纪律
 
-- `ng build --configuration production` → `cp www/index.html www/404.html`(SPA fallback)。
-- OBS 上传**逐文件指定目标键**,禁目录递归 cp;html/css/js/图片带正确 content-type;`-acl=public-read`。
-- CDN 刷新只用 fmode.cn 域名组脚本:`node /opt/data/git-repos/fmode-app/scripts/refresh-fmode-cn.js <urls...>`;**禁用旧 refresh-cdn.js**(硬编码刷 app.fmode.cn)。
+- `ng build --configuration production --base-href /dev/zC4W4aVTCo/` → `cp www/index.html www/404.html`(SPA fallback;构建后先核对 www/index.html 里 base href 正确再上传)。
+- OBS 上传目标 `obs://nova-cloud/dev/zC4W4aVTCo/`(逐文件指定目标键,禁目录递归 cp;html/css/js/图片带正确 content-type;`-acl=public-read`
+- CDN 刷新只用 app.fmode.cn 域名组脚本:`node /opt/data/git-repos/fmode-app/scripts/refresh-cdn.js`(目录 `https://app.fmode.cn/dev/zC4W4aVTCo/`);**禁用 refresh-fmode-cn.js**(刷的是 fmode.cn 域名组,与本产品无关)。
 - 发布后逐 URL `curl` 验收 200 + 内容正确,才算上线成功。
 - Git 归档与前端上线是两个独立状态门禁,分别报告,禁止互相冒充。
 

+ 9 - 10
README.md

@@ -16,7 +16,7 @@
 | 动效 | Angular Animations(`@angular/platform-browser/animations/async`) |
 | 移动端壳 | Capacitor 6(本仓仅 Web 发布,不构建原生平台) |
 | 后端 | Parse(`https://server.fmode.cn/parse`,appId `ncloudmaster`;登录/注册/个人中心) |
-| 发布 | 静态产物上华为云 OBS + CDN(`https://fmode.cn/aipm-lesson/fmode-app-mirror/`) |
+| 发布 | 静态产物上华为云 OBS + CDN(`https://app.fmode.cn/dev/zC4W4aVTCo/`,独立 Product ID) |
 
 ## 本地运行
 
@@ -31,26 +31,25 @@ npm start       # ng serve → http://localhost:4200
 ## 构建发布
 
 ```bash
-npx ng build --configuration production   # 产物在 www/
-cp www/index.html www/404.html            # SPA 路由 fallback,防刷新 404
+npx ng build --configuration production --base-href /dev/zC4W4aVTCo/   # 产物在 www/
+cp www/index.html www/404.html            # SPA 路由 fallback,防刷新 404(上传前核对 base href)
 ```
 
 上传 OBS(逐文件指定目标键并带 content-type,勿目录递归 cp):
 
 ```bash
-obsutil cp www/index.html obs://www-fmode.cn/aipm-lesson/fmode-app-mirror/index.html \
-  -meta=content-type:text/html -acl=public-read -e=obs.cn-south-1.myhuaweicloud.com
-# 其余 js/css/资产同理(js: text/javascript, css: text/css, png/jpg: 对应 image 类型)
+obsutil cp www/index.html obs://nova-cloud/dev/zC4W4aVTCo/index.html \
+  -meta=contentType:text/html -acl=public-read -e=obs.cn-south-1.myhuaweicloud.com
+# 其余 js/css/资产同理(js: application/javascript, css: text/css, png/jpg/svg: 对应 image 类型)
 ```
 
-随后刷新 CDN(fmode.cn 域名组):
+随后刷新 CDN(app.fmode.cn 域名组,目录刷新):
 
 ```bash
-node /opt/data/git-repos/fmode-app/scripts/refresh-fmode-cn.js \
-  https://fmode.cn/aipm-lesson/fmode-app-mirror/index.html
+node /opt/data/git-repos/fmode-app/scripts/refresh-cdn.js   # 刷 https://app.fmode.cn/dev/zC4W4aVTCo/
 ```
 
-线上地址:https://fmode.cn/aipm-lesson/fmode-app-mirror/index.html
+线上地址:https://app.fmode.cn/dev/zC4W4aVTCo/index.html
 
 ## 工程纪律(飞马 Harness)