diff options
author | metamuffin <metamuffin@disroot.org> | 2023-10-24 07:40:51 +0200 |
---|---|---|
committer | metamuffin <metamuffin@disroot.org> | 2023-10-24 07:40:51 +0200 |
commit | b462195f2dcfe457eae7791c14e4b834b2d5ab29 (patch) | |
tree | 492ba43952fa6798320f2b2bb4d4bd5484e2e4f2 /server/src/routes/ui/style.rs | |
parent | 6e9ccad881a7f887599bc8f3f6b9ca2424a2cc5e (diff) | |
parent | 55f7f06cecd5b6f5661f6f22e8bb3e0448b9713a (diff) | |
download | jellything-b462195f2dcfe457eae7791c14e4b834b2d5ab29.tar jellything-b462195f2dcfe457eae7791c14e4b834b2d5ab29.tar.bz2 jellything-b462195f2dcfe457eae7791c14e4b834b2d5ab29.tar.zst |
Merge branch 'master' of codeberg.org:metamuffin/jellything
Diffstat (limited to 'server/src/routes/ui/style.rs')
-rw-r--r-- | server/src/routes/ui/style.rs | 36 |
1 files changed, 26 insertions, 10 deletions
diff --git a/server/src/routes/ui/style.rs b/server/src/routes/ui/style.rs index 1f92690..bdaddd2 100644 --- a/server/src/routes/ui/style.rs +++ b/server/src/routes/ui/style.rs @@ -4,7 +4,11 @@ Copyright (C) 2023 metamuffin <metamuffin.org> Copyright (C) 2023 tpart */ -use rocket::{get, http::ContentType}; +use rocket::{ + get, + http::{ContentType, Header}, + response::Responder, +}; macro_rules! concat_files { ([$base: expr], $($files:literal),*) => {{ @@ -37,10 +41,22 @@ fn css_bundle() -> String { "nodepage.css", "nodecard.css", "js-player.css", + "js-transition.css", "forms.css" ) } +pub struct CachedAsset<T>(pub T); +impl<'r, 'o: 'r, T: Responder<'r, 'o>> Responder<'r, 'o> for CachedAsset<T> { + fn respond_to(self, request: &'r rocket::Request<'_>) -> rocket::response::Result<'o> { + let mut res = self.0.respond_to(request)?; + if cfg!(not(debug_assertions)) { + res.set_header(Header::new("cache-control", "max-age=86400")); + } + Ok(res) + } +} + fn js_bundle() -> String { concat_files!([env!("OUT_DIR")], "bundle.js") } @@ -49,23 +65,23 @@ fn js_bundle_map() -> String { } #[get("/assets/style.css")] -pub fn r_assets_style() -> (ContentType, String) { - (ContentType::CSS, css_bundle()) +pub fn r_assets_style() -> CachedAsset<(ContentType, String)> { + CachedAsset((ContentType::CSS, css_bundle())) } #[get("/assets/cantarell.woff2")] -pub fn r_assets_font() -> (ContentType, &'static [u8]) { - ( +pub fn r_assets_font() -> CachedAsset<(ContentType, &'static [u8])> { + CachedAsset(( ContentType::WOFF2, include_bytes!("../../../../web/cantarell.woff2"), - ) + )) } #[get("/assets/bundle.js")] -pub fn r_assets_js() -> (ContentType, String) { - (ContentType::JavaScript, js_bundle()) +pub fn r_assets_js() -> CachedAsset<(ContentType, String)> { + CachedAsset((ContentType::JavaScript, js_bundle())) } #[get("/assets/bundle.js.map")] -pub fn r_assets_js_map() -> (ContentType, String) { - (ContentType::JSON, js_bundle_map()) +pub fn r_assets_js_map() -> CachedAsset<(ContentType, String)> { + CachedAsset((ContentType::JSON, js_bundle_map())) } |