部署到公网
本站是纯静态站,构建产物在 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(推荐,国内访问相对稳)
-
把项目推到 GitHub(或 Gitee)仓库。注意:
.gitignore已经把node_modules/、build/、.npm-cache/排除了,别把它们提交上去。 -
打开 Cloudflare Pages → Create a project → 连接你的 Git 仓库。
-
构建配置填:
配置项 值 Framework preset Docusaurus Build command npm run buildBuild output directory buildNode version 20(环境变量NODE_VERSION=20) -
保存,等第一次构建。成功后会给你一个
https://xxx.pages.dev的域名,手机直接能开。
如果仓库不是部署在域名根路径(比如
用户名.github.io/项目名),需要设置环境变量BASE_URL=/项目名/,否则图片和搜索索引会 404。
以后每次 git push,Cloudflare 会自动重新构建 —— 你只要放 Markdown 文件、推上去,几十秒后线上就更新了。
路线 B:GitHub Pages
-
新建仓库,推到 GitHub。
-
在仓库 Settings → Pages 里把 Source 设成 GitHub Actions(推荐),或者用
gh-pages分支。 -
如果用 Actions,加一个
.github/workflows/deploy.yml(Docusaurus 官方模板,仓库初始化时可以选)。 -
如果是
https://用户名.github.io/仓库名/这种子路径,构建时要带BASE_URL=/仓库名/:BASE_URL=/仓库名/ npm run build -
也可以本地一条命令发:
GIT_USER=你的用户名 USE_SSH=false npx docusaurus deploydocusaurus 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/<科目>/ 下 |