From b04ddc45855454d884b083ba09f1088df0e4a7b5 Mon Sep 17 00:00:00 2001 From: Tim-Paik Date: Sat, 14 Aug 2021 21:55:20 +0800 Subject: [PATCH] 0.1.7-beta fix templete dir error, embed templete --- Cargo.lock | 2 +- Cargo.toml | 2 +- src/main.rs | 14 ++++++++++++-- 3 files changed, 14 insertions(+), 4 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index b8b21da..8e9a9a8 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2174,7 +2174,7 @@ checksum = "d7cff876b8f18eed75a66cf49b65e7f967cb354a7aa16003fb55dbfd25b44b4f" [[package]] name = "web" -version = "0.1.6-beta" +version = "0.1.7-beta" dependencies = [ "chrono", "clap", diff --git a/Cargo.toml b/Cargo.toml index 4032bda..961770f 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -3,7 +3,7 @@ authors = ["Tim_Paik "] description = "simple http server written in rust" edition = "2018" name = "web" -version = "0.1.6-beta" +version = "0.1.7-beta" [dependencies] chrono = "0.4" diff --git a/src/main.rs b/src/main.rs index 0ac9f40..1a0d811 100644 --- a/src/main.rs +++ b/src/main.rs @@ -5,6 +5,7 @@ extern crate rocket; use colored::*; use rocket::fairing::{Fairing, Info, Kind}; +use rocket::figment::providers::{Env, Format, Toml}; use rocket::response::Redirect; use rocket::{config::TlsConfig, fs::NamedFile}; use rocket_dyn_templates::Template; @@ -318,7 +319,11 @@ async fn main() { std::env::var("WEB_SERVER_NAME").unwrap_or("timpaik'web server".to_string()), )) .merge(("cli_colors", matches.is_present("color"))) - .merge(("log_level", "off")); + .merge(("log_level", "off")) + .merge(("template_dir", ".")) + // The default is "templates/", an error will be reported if the folder is not found + .merge(Toml::file(Env::var_or("WEB_CONFIG", "web.toml")).nested()) + .merge(Env::prefixed("WEB_").ignore(&["PROFILE"]).global()); let enable_tls = matches.is_present("cert") && matches.is_present("key"); @@ -355,7 +360,12 @@ async fn main() { match rocket::custom(figment) .attach(Logger {}) - .attach(Template::fairing()) + .attach(Template::custom(|engines| { + engines + .tera + .add_raw_template("index", include_str!("../templates/index.html.tera")) + .unwrap(); + })) .mount("/", routes![file_server]) .register("/", catchers![not_found]) .launch()