Skip to content

刷新首页的烘焙快照

首页的世界地图、节点列表与统计条带里烘焙着一份 /control/v1/public/map 的快照。 它是 无 JS / API 不可达时的回退层,也是首屏渲染的初始内容。

Git 关联的构建不会替你跑它。 快照过期时要手工刷新并提交。

什么时候刷新

  • 机群拓扑变了(加/减节点、加/减骨干链路);
  • 统计数字明显偏离现实(BGP 会话数、路由数);
  • apps/control/static/world-land.geojson(陆地轮廓源)更新了;
  • 距上次刷新已有一段时间——快照没有过期机制,只会越来越旧。

怎么做

bash
node apps/home/bake.js

输出形如:

baked: land 50KB · 8 nodes · 12 links · stats {"nodes_online":10,"bgp_sessions":129,"routes":2485} · updated_at …

脚本会就地改写 apps/home/index.html 的四个烘焙区(陆地路径、链路弧、节点列表、 统计数字),然后:

bash
git diff apps/home/index.html    # 确认只有烘焙区在变
git commit -am "chore(home): 刷新烘焙快照"
git push                          # Git 关联的构建会部署它

它做了什么

步骤说明
读陆地轮廓apps/control/static/world-land.geojson——控制台那份是源apps/home/world-land.geojson 是运行时喂给 fleet 岛的副本
投影与控制台 FleetMap 和页面内联脚本完全相同:太平洋居中等距圆柱投影,W=1000 H=500,LON0=165
拉数据GET https://api.natlan.io/control/v1/public/map
写回<!-- bake:xxx --> 标记替换 index.html 里的对应区块

投影参数三处一致是硬要求:地图有三层来源(烘焙快照 → 内联脚本刷新 → FleetMap 岛), 参数不一致会在换层时看到明显跳变。

标签避让的 LABEL_HINT 也要与 index.html 内联脚本里的 HINT 保持同步。

常见问题

脚本报找不到 geojson。 检查 apps/control/static/world-land.geojson 是否存在。 这条路径在合仓前指向兄弟仓 ../dn42-control-webui/static/,已修正为仓内路径。

拉数据失败。 脚本依赖生产的公共端点可达。它不需要任何凭据——那是公开数据。

只想更新地图不想更新数字(或反之)。脚本是一次性全量烘焙,没有分区开关。 如果只有部分区块需要更新,用 git checkout -p 挑选保留。