feat: Set Cache-Control header on responses
This commit is contained in:
1 parent
bbb19754bd
commit
e6cc71fa47
4 files changed
+15
-8
No files matched your search
+10
-3
@@ -8,7 +8,7 @@ use ::typst::syntax::VirtualPath;
|
||||
use axum::{
|
||||
Router,
|
||||
extract::{Path, State},
|
||||
http::StatusCode,
|
||||
http::{HeaderValue, StatusCode, header::CACHE_CONTROL},
|
||||
response::{Html, IntoResponse, Response},
|
||||
routing::get,
|
||||
};
|
||||
@@ -17,6 +17,7 @@ use itertools::Itertools;
|
||||
use tower_http::{
|
||||
compression::CompressionLayer,
|
||||
services::{ServeDir, ServeFile},
|
||||
set_header::SetResponseHeaderLayer,
|
||||
trace::TraceLayer,
|
||||
};
|
||||
use tracing::{Level, info};
|
||||
@@ -97,14 +98,20 @@ async fn main() {
|
||||
let mut favicon = state.config.get_full_assets_path();
|
||||
favicon.push(PathBuf::from("favicon.svg"));
|
||||
|
||||
let assets_service = ServeDir::new(state.config.get_full_assets_path());
|
||||
|
||||
let app = Router::new()
|
||||
.route("/", get(root_handler))
|
||||
.route("/{*path}", get(typst_handler))
|
||||
.route_service("/favicon.ico", ServeFile::new(favicon))
|
||||
.nest_service("/assets", ServeDir::new(&state.config.assets_root))
|
||||
.nest_service("/assets", assets_service)
|
||||
.with_state(state.clone())
|
||||
.layer(TraceLayer::new_for_http())
|
||||
.layer(CompressionLayer::new());
|
||||
.layer(CompressionLayer::new())
|
||||
.layer(SetResponseHeaderLayer::overriding(
|
||||
CACHE_CONTROL,
|
||||
HeaderValue::from_static("public, max-age=86400, immutable"),
|
||||
));
|
||||
|
||||
let socket = SocketAddrV4::new(Ipv4Addr::new(0, 0, 0, 0), state.config.port);
|
||||
info!("Serving Karnaugh on socket {}", socket);
|
||||
|
||||
Reference in new issue
Block a user