use std::time::{Duration, SystemTime}; use actix_web::{http::header, web, HttpResponse}; use crate::templates::statics::StaticFile; static FAR: Duration = Duration::from_secs(180 * 24 * 60 * 60); pub async fn file(path: web::Path) -> HttpResponse { let name = &path.into_inner(); if let Some(data) = StaticFile::get(name) { let far_expires = SystemTime::now() + FAR; HttpResponse::Ok() .insert_header(header::Expires(far_expires.into())) .insert_header(header::ContentType(data.mime.clone())) .body(data.content) } else { HttpResponse::NotFound() .reason("No such static file.") .finish() } }