文档
Protocol Verified

混合路由发现策略

我们如何解决沙箱环境下的 URL 悖论。

PRID: 1002
VERIFIED
1 min read

🏛️ 混合内容发现策略

核心理念: 在不确定的运行环境中,通过确定的“注册字典”来定位内容。

1. 背景:时空错乱 (The Time-Travel Bug)

在单页应用 (SPA) 中,点击链接的瞬间,路由器的 Loader 会立即执行,但浏览器的地址栏 (window.location) 更新是滞后的。 如果 Loader 读取 window.location,它读到的是上一页的 URL。这就是为什么你在文档页面点击,却报错说“找不到博客页面”。

2. 解决方案:信任未来 (Trust the Future)

我们必须读取 Loader 上下文中的 location 参数。它代表了即将前往的目标状态

逻辑流程图

mermaid
graph TD A[Loader 启动] --> B{是否处于沙箱环境?} B -- --> C[直接使用 Router Params 匹配] B -- --> D[启动字典扫描仪] D --> E[读取 Router Context 中的 location (Future State)] E --> F[在注册表中贪婪匹配最长 Slug] F --> G[加载对应 Markdown 数据]

3. 贪婪匹配算法 (Greedy Dictionary Matching Protocol)

为了防止路径歧义(例如 corecore/plan),我们采用了贪婪匹配逻辑:

  1. 获取字典:从生成的 manifest 中提取所有 slug。
  2. 倒序排列:按 slug 长度降序排列(长的在前)。
  3. 前缀/包含检测
    typescript
    // 使用 router 传递的 location,这是唯一的真理 const targetPath = location.pathname.toLowerCase(); const matched = allSlugs.sort((a,b) => b.length - a.length) .find(slug => targetPath.includes(slug));

4. 生产与开发的平衡

维度生产模式 (PROD)沙箱补救 (SANDBOX)
触发条件标准域名 / 正常参数Blob 协议 / 参数解析为 *
数据源paramscontext.location
匹配效率高 (直接 Key 查询)中 (字符串遍历)
SEO 友好度极高 (符合标准)低 (仅供预览)
抗竞态能力N/A极强 (无视浏览器异步更新)

此策略是 Instant Ship™ 能够在 AI Studio 中保持“即插即用”体验的核心基石。

Authority Distribution

Share this technical artifact