Skip to content

    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 后,通常需要同步补这些位置:

    1. package.json 增加本地开发脚本和 cf:build:slide:主题名 构建脚本。
    2. cf:build:slides 把新 deck 的构建脚本串进去。
    3. docs/public/_redirects 添加 /decks/主题名/* /decks/主题名/index.html 200
    4. docs/slides/ 新增一个嵌入页,作为文档站入口。

    最常见的错误

    继续阅读