diff --git a/src/caddy.rs b/src/caddy.rs index 7b97bf2..7118c55 100644 --- a/src/caddy.rs +++ b/src/caddy.rs @@ -83,6 +83,20 @@ impl CaddyController { })); } + if !config.immutable_paths.is_empty() { + routes_array.push(json!({ + "match": [{ "path": config.immutable_paths }], + "handle": [{ + "handler": "headers", + "response": { + "set": { + "Cache-Control": ["public, max-age=15778476, immutable"] + } + } + }] + })) + } + routes_array.push(json!({ "handle": [{ "handler": "file_server", diff --git a/src/sites.rs b/src/sites.rs index e8ce75c..c6c3e51 100644 --- a/src/sites.rs +++ b/src/sites.rs @@ -23,6 +23,8 @@ pub struct SiteConfig { pub paths_mode: SiteConfigPathsMode, #[serde(default)] pub redirects: Vec, + #[serde(default)] + pub immutable_paths: Vec, } #[derive(Deserialize, Default, Eq, PartialEq)]