BasicOIDC/src/controllers/assets_controller.rs

20 lines
637 B
Rust
Raw Normal View History

2022-03-30 08:14:39 +00:00
use std::path::Path;
2022-03-30 07:40:46 +00:00
2022-03-30 08:14:39 +00:00
use actix_web::{HttpResponse, web};
2022-03-30 07:40:46 +00:00
use include_dir::{Dir, include_dir};
/// Assets directory
static ASSETS_DIR: Dir = include_dir!("$CARGO_MANIFEST_DIR/assets");
2022-03-30 08:14:39 +00:00
pub async fn assets_route(path: web::Path<String>) -> HttpResponse {
let path: &Path = path.as_ref().as_ref();
match ASSETS_DIR.get_file(path) {
None => HttpResponse::NotFound().body("404 Not found"),
2022-03-30 07:40:46 +00:00
Some(file) => {
2022-03-30 08:14:39 +00:00
let res = mime_guess::from_path(path).first_or_octet_stream();
HttpResponse::Ok()
.content_type(res.to_string())
.body(file.contents())
2022-03-30 07:40:46 +00:00
}
}
}