【发布时间】:2022-10-04 20:20:24
【问题描述】:
我想提供一个简单的 html 文件作为对 API 端点(如 / 或 api/ 的请求的响应),我设法在网上找到的唯一一件事是如何将静态文件托管为 /index.html 例如。
我在 Rust 中使用火箭箱。
【问题讨论】:
标签: html web rust static rocket
我想提供一个简单的 html 文件作为对 API 端点(如 / 或 api/ 的请求的响应),我设法在网上找到的唯一一件事是如何将静态文件托管为 /index.html 例如。
我在 Rust 中使用火箭箱。
【问题讨论】:
标签: html web rust static rocket
您可以通过返回 NamedFile 从路由中提供单个文件:
use rocket::fs::NamedFile;
use rocket::get;
#[get("/api")]
async fn serve_home_page() -> Result<NamedFile, std::io::Error> {
NamedFile::open("index.html").await
}
这是 0.5 API;如果您使用的是 0.4,则将导入更改为 rocket::response::NamedFile 并删除 async/await 语法。您也可以返回一个简单的std::fs::File 或tokio::fs::File,但NamedFile 将根据文件扩展名设置正确的Content-Type 标头。
【讨论】: