rocket build 不支持直接部署 HTML 站点,它仅生成 Rust 二进制文件,不产出静态资源;若需托管 HTML,须手动配置 FileServer 并确保 public 目录路径正确。
rocket build 命令不支持直接部署 HTML 站点
它根本不是为静态 HTML 部署设计的工具。
是 Rocket(Rust Web 框架)的本地构建命令,只生成可执行二进制文件,不是
那种产出
目录的静态打包器。你运行它,只会得到一个跑在 localhost 的 Rust 服务程序,不会吐出 HTML 文件,更不会自动上传或同步到服务器。
真正要发布纯 HTML 站点,得绕开 rocket build
如果你手头只有几个
、
和图片,目标是让它们通过域名访问,那整个流程和 Rocket 框架无关——你不需要启动任何 Rust 服务,也不该用
。
常见做法是:
把所有 HTML/CSS/JS 文件整理进一个目录(比如叫
或
)
用 Nginx、Caddy、GitHub Pages、Vercel 或 Netlify 这类静态托管服务直接托管该目录
如果非要用 Rust 服务“代理”这些文件,得手动用
或
注册静态路由,而不是依赖
误用 rocket build 的典型错误现象
执行
后发现:
立即学习
“
前端免费学习笔记(深入)
”;
使用HTML,CSS,JavaScript开发Android应用程序 英文文字pdf版附源文件
如果你了解HTML,CSS和JavaScript,您已经拥有所需的工具开发Android应用程序。本动手本书展示了如何使用这些开源web标准设计和建造,可适应任何Android设备的应用程序 - 无需使用Java。您将学习如何创建一个在您选择的平台的Android友好的网络应用程序,然后转换与自由PhoneGap框架到一个原生的Android应用程序。了解为什么设备无关的移动应用是未来的潮流,并开始构建应用程序,提供更
下载
项目根目录没多出
或
文件夹 → 正常,它本来就不生成静态资源
运行生成的二进制文件,打开
却 404 → 因为没配置静态文件路由,Rocket 默认不自动 serve 任意 HTML
试图把
当成“部署包”扔到服务器上运行 → 可能缺 OpenSSL、环境变量或配置文件,且仍需手动处理静态资源路径
如果坚持用 Rocket 托管 HTML,必须显式配置文件服务
这是唯一靠谱的结合方式:用 Rocket 当 HTTP 服务容器,但自己告诉它“哪些路径对应哪些 HTML 文件”。关键不是
,而是代码里怎么写。
示例片段(Rocket 0.5+):
注意点:
必须是真实存在的目录,且含
构建后,二进制文件需和
目录保持相对路径一致,否则运行时报
没有
,哪怕
成功,也看不到任何 HTML
真正卡住人的地方,往往不是“怎么写”,而是混淆了“构建命令”和“部署动作”——
只负责编译 Rust 代码,HTML 文件的组织、路径映射、服务暴露,全靠你自己在代码里声明清楚。
rocket buildnpm run builddist/index.htmlstyle.cssrocket buildpublic/docs/rocket::fs::NamedFilerocket::fs::FileServerrocket buildrocket builddist/build/http://localhost:8000target/debug/your_approcket builduse rocket::fs::{FileServer, relative};
#[launch]
fn rocket() -> _ {
rocket::build()
.attach(FileServer::from(relative!("../public")))
}../publicindex.htmlpublic/Failed to open static fileFileServerrocket buildrocket build