From 5b280f16023c481d029c99d1161eb0884323a7ac Mon Sep 17 00:00:00 2001 From: Franciszek Stachura Date: Tue, 29 Apr 2025 12:30:37 +0200 Subject: [PATCH 1/2] docker: Add caching headers for static files Cache-control: max-age=3600 will force browsers to cache static files for one hour. This commit also enables headers module that allows adding HTTP headers from apache. --- docker/000-default.conf | 1 + docker/Dockerfile | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/docker/000-default.conf b/docker/000-default.conf index a94ae180..3e797153 100644 --- a/docker/000-default.conf +++ b/docker/000-default.conf @@ -8,6 +8,7 @@ AllowOverride None Require all granted + Header set Cache-Control "max-age=3600" ServerName MY_LOCAL_IP diff --git a/docker/Dockerfile b/docker/Dockerfile index 17fbc340..28bab06d 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -54,7 +54,7 @@ RUN mkdir -p /srv/elixir-data/ COPY ./docker/000-default.conf /etc/apache2/sites-available/000-default.conf COPY ./docker/gitconfig /etc/gitconfig -RUN a2enmod rewrite +RUN a2enmod rewrite headers EXPOSE 80 From ffad27a6a2332e0e6724aae49230396a35f5a728 Mon Sep 17 00:00:00 2001 From: Franciszek Stachura Date: Wed, 30 Apr 2025 14:18:24 +0200 Subject: [PATCH 2/2] layout: Flush messages cache Due to missing cache-control headers, some browsers might have picked a long caching time based on heuristics. This commits forces browsers to refresh messages cache. --- static/script.js | 4 ++-- templates/layout.html | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/static/script.js b/static/script.js index 62a54fc0..c26fd6f3 100644 --- a/static/script.js +++ b/static/script.js @@ -361,7 +361,7 @@ function addBannerContents(bannerElement, msg) { } function updateMessageBanner() { - fetch('/static/messages.json') + fetch('/static/messages.json?v=1') .then(r => r.json()) .then(messages => { const msg = randomChoice(messages); @@ -372,7 +372,7 @@ function updateMessageBanner() { } function cycleBanner(delay=500) { - fetch('/static/messages.json') + fetch('/static/messages.json?v=1') .then(r => r.json()) .then(messages => { cycleBannerWithData(messages, delay); diff --git a/templates/layout.html b/templates/layout.html index 92a16539..0a2e989a 100644 --- a/templates/layout.html +++ b/templates/layout.html @@ -25,7 +25,7 @@ - + +