路由策略
Slug 只是标签,ID 才是真理。
PRID: 1004
VERIFIED
1 min read
🧩 路由:Slug 作为标签,ID 作为真理
在 Instant Ship™ 中,我们通过引入具有ID 优先的数据库发现层,解决了命名参数和通配符 (Splat) 之间的冲突。
1. “Slug 是一个属性”的心态
我们不再将路由参数视为内容源。取而代之的是:
- URL 包含一个Slug(用户友好)。
- 链接状态 (Link State) 包含ID(系统友好)。
- 页面优先使用 ID 来即时获取数据。
2. 战略优势
- 无限嵌套:由于我们是根据路径/ID 查询数据库,所以无论 URL 有 2 个段还是 20 个段都无关紧要。
- 动态永久链接:您可以更改文章的 slug(例如,从
old-guide改为new-guide),而不会丢失文章的身份,因为 ID 保持不变。 - 代理弹性:即使 AI Studio 沙箱在您的 URL 中添加了
.html,在 state 中传递的 ID 仍然是纯净的。
3. 最终架构选择
- 文档:使用
[...slug]来捕获所有内容。 - 博客:使用
$slug用于扁平结构。 - 协议:两者在解析 URL 之前都必须实现
location.state.prid检查。
关键教训:停止尝试从字符串中解析结构。使用 ID 从数据中查询结构。