跳到主要内容

部署到公网

本站是纯静态站,构建产物在 build/ 目录,任何静态托管都能跑。下面两条路都是免费的,选一条即可。

当前状态:已经上线了​

线上地址 **https://cpa-study-room.pages.dev**(Cloudflare Pages 项目 cpa-study-room)。 以后改完内容,更新线上只需要两条命令:

npm run build
node node_modules/wrangler/wrangler-dist/cli.js pages deploy build --project-name cpa-study-room --branch main --commit-dirty=true

如果提示没登录,先 node node_modules/wrangler/wrangler-dist/cli.js login 走一次浏览器授权。

资料库(/library)里的 PDF 和页码索引不进 git,体积大、版权归机构。想连资料库一起上线, 先跑一次 npm run library 再 npm run build,然后用上面的直传命令; 如果走 Git 自动构建,线上那部分会是空的。

先确认能本地构建​

npm install
npm run build # 产物在 build/
npm run serve # 本地起一个服务预览 build/,默认 http://localhost:4173

能打开、搜索能搜到东西,就说明可以部署了。


路线 A:Cloudflare Pages(推荐,国内访问相对稳)​

  1. 把项目推到 GitHub(或 Gitee)仓库。注意:.gitignore 已经把 node_modules/、build/、.npm-cache/ 排除了,别把它们提交上去。

  2. 打开 Cloudflare Pages → Create a project → 连接你的 Git 仓库。

  3. 构建配置填:

    配置项值
    Framework presetDocusaurus
    Build commandnpm run build
    Build output directorybuild
    Node version20(环境变量 NODE_VERSION=20)
  4. 保存,等第一次构建。成功后会给你一个 https://xxx.pages.dev 的域名,手机直接能开。

如果仓库不是部署在域名根路径(比如 用户名.github.io/项目名),需要设置环境变量 BASE_URL=/项目名/,否则图片和搜索索引会 404。

以后每次 git push,Cloudflare 会自动重新构建 —— 你只要放 Markdown 文件、推上去,几十秒后线上就更新了。

路线 B:GitHub Pages​

  1. 新建仓库,推到 GitHub。

  2. 在仓库 Settings → Pages 里把 Source 设成 GitHub Actions(推荐),或者用 gh-pages 分支。

  3. 如果用 Actions,加一个 .github/workflows/deploy.yml(Docusaurus 官方模板,仓库初始化时可以选)。

  4. 如果是 https://用户名.github.io/仓库名/ 这种子路径,构建时要带 BASE_URL=/仓库名/:

    BASE_URL=/仓库名/ npm run build
  5. 也可以本地一条命令发:

    GIT_USER=你的用户名 USE_SSH=false npx docusaurus deploy

    docusaurus deploy 会把 build/ 推到 gh-pages 分支。

国内访问 GitHub Pages 有时会抽风,介意的话优先选 Cloudflare。


部署前检查清单​

  • npm run build 本地能过,没有红色报错
  • build/pagefind/ 目录存在(搜索索引生成成功)
  • 站点在手机上能打开,卡片是单列
  • 搜「递延所得税」能出结果
  • 部署路径带子目录时设了 BASE_URL

常见坑​

现象原因解决
页面能开但样式全丢BASE_URL 配错子路径部署必须设 BASE_URL=/仓库名/
搜索框一直提示要构建build 时 Pagefind 没跑确认构建命令是 npm run build,不是 docusaurus build
手机上表格溢出表格列太多减少列数或拆表
首页没有新文章没写 date 或放错文件夹补 date,确认在 docs/<科目>/ 下