在Rust中使用Rocket框架返回网页,通常涉及创建一个路由,该路由将返回一个HTML页面。Rocket是一个快速、易用且可扩展的Web框架,它允许你以一种简洁的方式定义路由和处理请求。
一、使用Rocket框架返回一个简单的HTML页面:
- 添加依赖:在你的Cargo.toml文件中添加Rocket框架和相关的依赖。
[dependencies]
rocket = "0.5.0"
- 创建路由:在你的Rust代码中,使用Rocket的宏定义一个路由。
#[macro_use] 
extern crate rocket;
use rocket::response::content;
use std::fs;
#[get("/test")]
fn test() -> content::RawHtml<String> {
    content::RawHtml(String::from("<h1>Hello, Rocket!</h1>"))
}
#[get("/test2")]
fn test2() -> Result<content::RawHtml<String>, std::io::Error> {
    let html_content = fs::read_to_string("templates/home.html")?;
    Ok(content::RawHtml(html_content))
}
- 启动Rocket服务器:
#[launch]
fn rocket() -> _ {
    rocket::build()
        // 注册路由
        .mount("/", routes![test, test2])
}
- 运行程序:运行你的Rust程序,Rocket服务器将启动,并监听默认端口8000。 
- 访问网页:打开你的Web浏览器,访问 - http://localhost:8000/test2,你将看到返回的HTML页面。

请注意,这只是一个简单的例子,实际项目中你可能需要更复杂的逻辑来生成HTML内容,例如使用模板引擎来动态生成页面内容。
二、使用Rocket框架返回一个基于 Handlebars (HBS) 模板的响应:
在 Rust 中使用 Rocket 框架时,如果你想返回一个基于 Handlebars (HBS) 模板的响应,你需要做几个步骤:
- 添加依赖:首先,确保你的 Cargo.toml文件中包含了rocket和handlebars相关的依赖。
[dependencies]
rocket = "0.5.0"
rocket_dyn_templates = { version = "0.1.0", features = ["handlebars", "tera"] }
- 设置模板目录:在 Rocket 应用启动时,你需要指定 Handlebars 模板的目录。
#[macro_use]
extern crate rocket;
use rocket::fs::FileServer;
use rocket_dyn_templates::{context, Template};
#[launch]
fn rocket() -> _ {
    rocket::build()
        // 添加模板引擎系统
        .attach(Template::fairing())
        // 使用硬盘提供内容服务
        .mount("/", FileServer::from("static/"))
        // 注册路由
        .mount("/", routes![test3])
}
- 创建 Handlebars 模板:在你的项目中创建一个 - templates目录,并在其中放置你的- .hbs文件,我测试的是"hello.html.hbs"文件
- 编写路由:创建一个路由,使用 - Template::render来渲染 Handlebars 模板。
#[get("/test3")]
async fn test3() -> Template {
    Template::render("hello", context! { message: "Hello, Rust"})
}
- 编译模板:Rocket 会在首次请求时编译 Handlebars 模板。为了提高性能,你可以在开发时预先编译模板。 
- 启动应用:运行你的 Rocket 应用,Rocket服务器将启动,并监听默认端口8000。然后通过浏览器访问对应的路由 - http://localhost:8000/test3,你将看到由 Handlebars 模板渲染的页面。

请注意,Rocket 框架和其贡献库经常更新,上述步骤和代码示例可能需要根据你使用的版本进行调整。如果你遇到任何问题,可以查阅 Rocket 框架的官方文档或社区支持。
三、源码下载
上面2个例子,源码下载地址:
蓝奏云链接:
https://wwf.lanzouo.com/i52aL1yu14of
知识星球链接:
https://t.zsxq.com/oRO7J