diff --git a/Cargo.lock b/Cargo.lock index a3c3426..75f50a0 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -19,6 +19,29 @@ dependencies = [ "tracing", ] +[[package]] +name = "actix-files" +version = "0.6.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bf0bdd6ff79de7c9a021f5d9ea79ce23e108d8bfc9b49b5b4a2cf6fad5a35212" +dependencies = [ + "actix-http", + "actix-service", + "actix-utils", + "actix-web", + "bitflags 2.5.0", + "bytes", + "derive_more", + "futures-core", + "http-range", + "log", + "mime", + "mime_guess", + "percent-encoding", + "pin-project-lite", + "v_htmlescape", +] + [[package]] name = "actix-http" version = "3.6.0" @@ -696,6 +719,12 @@ dependencies = [ "itoa", ] +[[package]] +name = "http-range" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "21dec9db110f5f872ed9699c3ecf50cf16f423502706ba5c72462e28d3157573" + [[package]] name = "httparse" version = "1.8.0" @@ -967,6 +996,7 @@ checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" name = "personal-website" version = "0.1.0" dependencies = [ + "actix-files", "actix-web", "actix-web-lab", "anyhow", @@ -1449,6 +1479,12 @@ dependencies = [ "percent-encoding", ] +[[package]] +name = "v_htmlescape" +version = "0.15.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4e8257fbc510f0a46eb602c10215901938b5c2a7d5e70fc11483b1d3c9b5b18c" + [[package]] name = "version_check" version = "0.9.4" diff --git a/Cargo.toml b/Cargo.toml index 32cf208..7734854 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -4,6 +4,7 @@ version = "0.1.0" edition = "2021" [dependencies] +actix-files = "0.6.5" actix-web = "4.5.1" actix-web-lab = "0.20.2" anyhow = "1.0.81" diff --git a/src/public/mod.rs b/src/public/mod.rs index e7620ea..c1d32d3 100644 --- a/src/public/mod.rs +++ b/src/public/mod.rs @@ -3,12 +3,14 @@ mod routes; mod templates; use actix_web::{web, App, HttpServer}; +use actix_files as actix_fs; pub(crate) async fn start_actix() -> anyhow::Result<()> { log::info!("Serving an http server at http://0.0.0.0:8080"); HttpServer::new(|| { App::new() - .route("/", web::get().to(routes::index)) + .route("/", web::get().to(routes::index)) // index.html + .service(actix_fs::Files::new("/static", "./static").index_file("index.html")) // static directoryh }) .bind("0.0.0.0:8080")?