#![feature(proc_macro_hygiene, decl_macro)] use askama::Template; use rocket::{ get, http::RawStr, routes, response::{ NamedFile, content::Html, }, }; use std::path::PathBuf; #[derive(Template)] #[template(path = "index.html")] struct IndexTemplate<'a> { year: &'a str, } #[get("/")] fn index<'a>() -> Html { let t = IndexTemplate { year: "2019" }; Html(t.render().unwrap()) } #[get("/", rank = 99)] fn public_file(file: &RawStr) -> Option { NamedFile::open(PathBuf::from("public/").join(file.as_str())).ok() } fn main() { rocket::ignite().mount("/", routes![index, public_file]).launch(); }