Skip to content

fix(deploy): core 主域改 zone 路径路由——同 host 上 Custom Domain 优先于路径路由 - #65

Merged
HandyWote merged 1 commit into
m0/devfrom
fix/core-zone-route
Sep 8, 2026
Merged

fix(deploy): core 主域改 zone 路径路由——同 host 上 Custom Domain 优先于路径路由#65
HandyWote merged 1 commit into
m0/devfrom
fix/core-zone-route

Conversation

@HandyWote

Copy link
Copy Markdown
Contributor

真机部署前发现的硬约束

Cloudflare 路由语义:同一 host 上 Custom Domain 优先于路径路由(官方文档 + 社区证实:Worker A 挂 example.com Custom Domain,Worker B 挂 example.com/shop* 路由 → B 拿不到任何流量)。

#61 合入的形态是「core 保留 Custom Domain + 模块 zone 路径路由」——真机一部署,模块路由会被 core 全吞,#57 修完等于没修。这正是 #59 验收清单里的「真机重验」环节要抓的东西,现在提前在部署前抓到了。

修法:core 也走 zone 路径路由(§5.3 正解)

改动

文件 改动
src/assemble.ts core routes 去 custom_domain 改 <domain>/*
src/dns.ts(新) findZone 逐级上溯 + ensureZoneRecord 幂等建代理 A 记录
src/steps.ts core 部署后立即 ensureDns(先于模块部署与冒烟);测试注入口 ensureDns/configOverride
test/* assemble/三方一致性断言同步 zone 形态;dns.test.ts 5 用例;steps 顺序断言 deploy → ensureDns → registry
README.md 权限表补 DNS Edit;新增「路由形态」章节;删「假设(待真机验证)」段

验证

Ref #59

#59 真机部署前发现:Cloudflare 语义是 Custom Domain 优先于同 host 的路径
路由,core 挂 Custom Domain 会吞掉模块的 <domain>/m/<id>/*(模块路由拿不到
任何流量)。§5.3 正解:core 与模块全部 zone 路径路由(core=<domain>/*,
模块=<domain>/m/<id>/*,最长前缀胜出)。

- assemble.ts:core routes 改 {pattern: '<domain>/*'}(去 custom_domain)
- dns.ts(新):部署期 DNS 自愈——core 改路由形态后 Custom Domain 解绑会
  删 CF 自建 DNS 记录,部署脚本幂等补建代理 A 记录(192.0.2.1 占位),
  zone 逐级上溯探测(无需 config zone 字段,#59 待定案①定案)
- steps.ts:core 部署后立即 ensureDns(先于模块部署与冒烟),测试注入口
  ensureDns + configOverride
- 测试:assemble/三方一致性断言同步 zone 形态;dns.test.ts 5 用例(上溯/
  幂等/无 token/未找到/创建);steps.test 顺序断言(deploy → ensureDns →
  registry);README 权限表补 DNS Edit、路由形态章节、删假设段

Signed-off-by: huangyinghui <18666119673@163.com>
@HandyWote
HandyWote merged commit c93dc07 into m0/dev Sep 8, 2026
1 check passed
@HandyWote
HandyWote deleted the fix/core-zone-route branch September 8, 2026 12:24
@HandyWote
HandyWote restored the fix/core-zone-route branch September 8, 2026 12:31
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant