Rust & Rocket.rs - 构建布局系统

Rou*_*dre 1 rust handlebars.js

我尝试使用Rocket.rs和 Handlebar 模板系统创建一个小型网站。我想创建一个全局布局并将我的内容包含在<body>标签中

这是我的代码

templates/
??? layouts
?   ??? main.html.hbs
??? pages
    ??? home.html.hbs
Run Code Online (Sandbox Code Playgroud)

这是我的布局文件

<!-- templates/layouts/main.html.hbs -->
<!DOCTYPE html>
<html>
<body>
    {{~> page}}
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

这里是我的内容

<!-- templates/pages/home.html.hbs -->
{{#*inline "page"}}
<h1>hello</h1>
{{/inline}}
{{~> (layouts/main)~}}
Run Code Online (Sandbox Code Playgroud)

还有我的 Rust 代码

// src/main.rs

#[get("/")]
fn home() -> Template {
    let map = ();
    Template::render("pages/home", &map)
}

fn main() {
    rocket::ignite()
        .mount("/", routes![home])
        .attach(Template::fairing())
        .launch();
}
Run Code Online (Sandbox Code Playgroud)

如何将页面/主页包含到全局布局中?

Rou*_*dre 6

经过数小时的搜索,我找到了答案

布局很好

<!-- templates/layouts/main.html.hbs -->
<!DOCTYPE html>
<html>
<body>
    {{~> content}}
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

但是对于页面你需要做一些这样的思考

<!-- templates/pages/home.html.hbs -->
{{#*inline "page"}}
<h1>hello</h1>
{{/inline}}
{{~> layouts/main~}}
Run Code Online (Sandbox Code Playgroud)