From 2e8c143a98e4da95bd84d51a6d02f1aafa88dee6 Mon Sep 17 00:00:00 2001 From: Andreas Zeitler Date: Sat, 30 Aug 2025 22:42:20 +0200 Subject: [PATCH 1/2] Add handling of brotli/gzip pre-compressed files Serving pre-compressed brotli/gzip files was not working before, because a file.br.br against the pre-compressed file.br check always returned false. --- lib/core/index.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/lib/core/index.js b/lib/core/index.js index 920e55b9..a941dcef 100644 --- a/lib/core/index.js +++ b/lib/core/index.js @@ -200,9 +200,9 @@ module.exports = function createMiddleware(_dir, _options) { path.relative(path.join('/', baseDir), pathname) ) ); - // determine compressed forms if they were to exist - gzippedFile = `${file}.gz`; - brotliFile = `${file}.br`; + // determine compressed forms if they were to exist, make sure to handle pre-compressed files, i.e. files with .br/.gz extension. we will serve them "as-is" + gzippedFile = file.endsWith('gz') ? file : `${file}.gz`; + brotliFile = file.endsWith('br') ? file : `${file}.br`; Object.keys(headers).forEach((key) => { res.setHeader(key, headers[key]); From 8a014cf8882faf87fc3b3faaf7bf93e2ac0ba438 Mon Sep 17 00:00:00 2001 From: Andreas Zeitler Date: Sat, 30 Aug 2025 22:44:59 +0200 Subject: [PATCH 2/2] Bump version from 14.1.1 to 14.1.2 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index d4c408a0..7bf90a0f 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "http-server", - "version": "14.1.1", + "version": "14.1.2", "description": "A simple zero-configuration command-line http server", "main": "./lib/http-server", "repository": {