From e3963d58f74b9e5a7dcab200d123467e863cdf50 Mon Sep 17 00:00:00 2001 From: 0x1eef <0x1eef@protonmail.com> Date: Sun, 9 Jun 2024 00:57:34 -0300 Subject: [PATCH] Add ?v= to requests for JS, CSS This change lets the server implement more aggressive caching strategies for both JS, and CSS. It is generally preferred to include a digest in the filename instead, but nanoc doesn't support that feature --- src/html/main/random.html.erb | 2 +- src/html/main/redirect.html.erb | 2 +- src/html/main/surah-index.html.erb | 2 +- src/html/main/surah-stream.html.erb | 2 +- src/js/loaders/SurahIndexLoader.ts | 5 +++-- src/js/loaders/SurahStreamLoader.ts | 5 +++-- 6 files changed, 10 insertions(+), 8 deletions(-) diff --git a/src/html/main/random.html.erb b/src/html/main/random.html.erb index 20adae6fa..96fc2a3e6 100644 --- a/src/html/main/random.html.erb +++ b/src/html/main/random.html.erb @@ -18,6 +18,6 @@ <%= erb("_favicon.html.erb") %> - + diff --git a/src/html/main/redirect.html.erb b/src/html/main/redirect.html.erb index ca7fcde0f..5cb03359a 100644 --- a/src/html/main/redirect.html.erb +++ b/src/html/main/redirect.html.erb @@ -17,6 +17,6 @@ <%= erb("_favicon.html.erb") %> - + diff --git a/src/html/main/surah-index.html.erb b/src/html/main/surah-index.html.erb index fec676eca..808a02f87 100644 --- a/src/html/main/surah-index.html.erb +++ b/src/html/main/surah-index.html.erb @@ -22,6 +22,6 @@ <%= erb("_postman.html.erb", {locale:, dir:}) %>
- + diff --git a/src/html/main/surah-stream.html.erb b/src/html/main/surah-stream.html.erb index 39917513b..bc11ba524 100644 --- a/src/html/main/surah-stream.html.erb +++ b/src/html/main/surah-stream.html.erb @@ -25,6 +25,6 @@ data-surah-id="<%= surah.id %>" data-audio-base-url="<%= audio_base_url %>"> - + diff --git a/src/js/loaders/SurahIndexLoader.ts b/src/js/loaders/SurahIndexLoader.ts index 99b9ced25..64b34d891 100644 --- a/src/js/loaders/SurahIndexLoader.ts +++ b/src/js/loaders/SurahIndexLoader.ts @@ -4,6 +4,7 @@ import type { TLocale } from "Quran"; (function () { const doc = document.documentElement; + const rev = doc.querySelector("meta[name='revision']")!.getAttribute("content")!; const locale: TLocale = { name: doc.lang, direction: doc.dir as "rtl" | "ltr", @@ -17,8 +18,8 @@ import type { TLocale } from "Quran"; const stylesheet: HTMLStyleElement = document.querySelector(".css.postman")!; postman( - item.script("/js/main/surah-index.js"), - item.css("/css/main/surah-index.css"), + item.script(`/js/main/surah-index.js?v=${rev}`), + item.css(`/css/main/surah-index.css?v=${rev}`), item.font("Kanit Regular", "url(/fonts/kanit-regular.ttf)"), item.font("Mada Regular", "url(/fonts/mada-regular.ttf"), item.progress((percent: number) => { diff --git a/src/js/loaders/SurahStreamLoader.ts b/src/js/loaders/SurahStreamLoader.ts index de5c73bc4..cc1a16b02 100644 --- a/src/js/loaders/SurahStreamLoader.ts +++ b/src/js/loaders/SurahStreamLoader.ts @@ -4,6 +4,7 @@ import type { TLocale } from "Quran"; (function () { const doc = document.documentElement; + const rev = doc.querySelector("meta[name='revision']")!.getAttribute("content")!; const { surahId } = document.querySelector(".root")!.dataset; const locale: TLocale = { name: doc.lang, @@ -18,8 +19,8 @@ import type { TLocale } from "Quran"; const stylesheet = document.querySelector(".css.postman")!; postman( - item.script("/js/main/surah-stream.js"), - item.css("/css/main/surah-stream.css"), + item.script(`/js/main/surah-stream.js?v=${rev}`), + item.css(`/css/main/surah-stream.css?v=${rev}`), item.font("Kanit Regular", "url(/fonts/kanit-regular.ttf)"), item.font("Mada Regular", "url(/fonts/mada-regular.ttf"), item.json(`/json/${doc.lang}/${surahId}/info.json`, { className: "json surahinfo" }),