Merge pull request #3137 from thelounge/xpaw/sw-no-cache

Force no-cache on service-worker and sourcemap files
This commit is contained in:
Pavel Djundik 2019-03-22 11:40:23 +02:00 committed by GitHub
commit cfc6a6adc8
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -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