use std::path::Path; use actix_web::{HttpResponse, web}; use include_dir::{Dir, include_dir}; /// Assets directory static ASSETS_DIR: Dir = include_dir!("$CARGO_MANIFEST_DIR/assets"); pub async fn robots_txt() -> HttpResponse { HttpResponse::Ok() .content_type("text/plain") .body(include_str!("../../assets/robots.txt")) } pub async fn assets_route(path: web::Path) -> HttpResponse { let path: &Path = path.as_ref().as_ref(); match ASSETS_DIR.get_file(path) { None => HttpResponse::NotFound().body("404 Not found"), Some(file) => { let res = mime_guess::from_path(path).first_or_octet_stream(); HttpResponse::Ok() .content_type(res.to_string()) .body(file.contents()) } } }