You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何配置`cargo doc`将文档输出到项目根目录的/docs文件夹以适配GitHub Pages?

如何配置cargo doc将文档输出到项目根目录的/docs文件夹以适配GitHub Pages?

我之前也踩过这个坑!你用--target-dir确实只会替换根目录,但不会改变doc/<crate name>的嵌套结构。其实cargo doc本身就有参数能直接满足你的需求,不用手动折腾文件移动。

核心解决方案(仅生成当前 crate 文档)

直接运行这条命令:

cargo doc --no-deps --output ./docs

解释下参数:

  • --no-deps:只生成你自己 crate 的文档,不会包含依赖库的文档,这样./docs目录里会非常干净,没有多余的依赖文件夹。
  • --output ./docs:告诉cargo doc把生成的所有文档直接输出到项目根目录的./docs文件夹下,而不是嵌套在doc/<crate name>里。

执行完这条命令后,你要的index.html就会直接出现在./docs目录下,完全符合GitHub Pages的要求——它会自动读取这个文件作为站点首页。

如果需要包含依赖文档的情况

要是你想把依赖的文档也一起生成并放到./docs里,那可以先正常生成文档,再把整个target/doc目录的内容复制到./docs里。这里给你两个平台的脚本:

Bash(Linux/macOS)

# 先生成完整文档,清空旧的docs目录,再复制新内容
cargo doc && rm -rf ./docs && cp -r target/doc ./docs

PowerShell(Windows)

# 同样的逻辑,适配Windows命令
cargo doc; Remove-Item -Recurse -Force ./docs; Copy-Item -Recurse target/doc ./docs

偷懒小技巧:把命令做成快捷脚本

为了不用每次都敲长命令,你可以在项目根目录创建一个脚本文件,比如build-docs.sh(Linux/macOS)或者build-docs.ps1(Windows),把上面的命令写进去,以后直接运行脚本就能一键生成符合要求的文档了。

工作区项目的额外说明

如果你的项目是Rust工作区(workspace),可以加上--workspace参数来生成所有成员的文档:

cargo doc --workspace --no-deps --output ./docs

这样所有工作区成员的文档都会直接输出到./docs里,GitHub Pages也能正常识别。

内容来源于stack exchange

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.07 07:14:30