From 9d3f5efbd517012171996ddd9d3cbd565e991f86 Mon Sep 17 00:00:00 2001 From: Pavel Djundik Date: Thu, 21 Mar 2019 11:43:13 +0200 Subject: [PATCH] Force no-cache on service-worker and sourcemap files --- src/server.js | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/src/server.js b/src/server.js index c3f18cb4..e5c11039 100644 --- a/src/server.js +++ b/src/server.js @@ -49,7 +49,10 @@ module.exports = function() { .set("env", "production") .disable("x-powered-by") .use(allRequests) - .use(index) + .get("/", indexRequest) + .get("/service-worker.js", forceNoCacheRequest) + .get("/js/bundle.js.map", forceNoCacheRequest) + .get("/css/style.css.map", forceNoCacheRequest) .use(express.static(path.join(__dirname, "..", "public"), staticOptions)) .use("/storage/", express.static(Helper.getStoragePath(), staticOptions)); @@ -244,11 +247,14 @@ function allRequests(req, res, next) { return next(); } -function index(req, res, next) { - if (req.url.split("?")[0] !== "/") { - return next(); - } +function forceNoCacheRequest(req, res, next) { + // Intermittent proxies must not cache the following requests, + // browsers must fetch the latest version of these files (service worker, source maps) + res.setHeader("Cache-Control", "no-cache, no-transform"); + return next(); +} +function indexRequest(req, res) { const policies = [ "default-src 'none'", // default to nothing "form-action 'self'", // 'self' to fix saving passwords in Firefox, even though login is handled in javascript