Slidev 独立访问链接
在这个仓库里,Slidev 至少会出现三种“看起来都能打开页面”的地址,但它们用途不同,不能混用。
1. 本地开发地址
开发时运行:
Bash
bun run slides:dev
bun run slides:2025对应的访问地址类似:
HTTP
GET http://localhost:3030/
GET http://localhost:3031/这些地址只在你的本地开发环境中存在,不能写进文档源码,也不能作为线上引用地址。
2. 文档站中的嵌入页地址
例如:
/slides/demo/slides/guide-2025
这些页面对应的是 docs/slides/*.md 中的文档页。它们本身不是 deck 构建产物,而是“文档说明 + 嵌入播放器”的入口。
3. 线上独立 deck 地址
真正用于独立访问 deck 的地址是:
HTTP
GET /decks/demo/
GET /decks/guide-2025/这些路径来自 package.json 里的 Cloudflare 构建脚本,例如:
JSON
"cf:build:slide:demo": "slidev build slides/demo.md --base /decks/demo/ --out ../.cloudflare-dist/decks/demo --download false"这里有两个关键参数:
--base /decks/demo/--out ../.cloudflare-dist/decks/demo
前者决定线上访问前缀,后者决定最终输出目录。
为什么还需要 _redirects
因为 deck 是一个单页应用,访问内部路由时需要回退到 index.html。所以本仓库在 docs/public/_redirects 中配置了:
HTTP
/decks/demo/* /decks/demo/index.html 200每新增一个 deck,都应补一条同类规则。
新增 deck 时要补哪些地方
新增 slides/my-topic.md 后,通常需要同步补这些位置:
package.json增加本地开发脚本和cf:build:slide:主题名构建脚本。cf:build:slides把新 deck 的构建脚本串进去。docs/public/_redirects添加/decks/主题名/* /decks/主题名/index.html 200。docs/slides/新增一个嵌入页,作为文档站入口。