diff --git a/server.js b/server.js index cfee9dc..ea019c1 100644 --- a/server.js +++ b/server.js @@ -135,7 +135,16 @@ app.locals.safeUrl = function (url) { // Middleware app.use(express.json({ limit: '2mb' })); app.use(express.urlencoded({ extended: true, limit: '2mb' })); -app.use(express.static(path.join(__dirname, 'public'))); +// Statische Dateien. JS/CSS bekommen "no-cache": der Browser darf sie behalten, +// muss aber jedes Mal per ETag nachfragen, ob sie noch aktuell sind (304, kein +// erneuter Download). Ohne diesen Header setzt der Browser die Lebensdauer selbst +// fest — nach einem Deploy lief die Oberfläche dann noch tagelang mit dem alten +// chat.js weiter, obwohl der Server längst die neue Datei auslieferte. +app.use(express.static(path.join(__dirname, 'public'), { + setHeaders: (res, datei) => { + if (/\.(js|css)$/i.test(datei)) res.setHeader('Cache-Control', 'no-cache'); + }, +})); // Allow the browser extension (running on indeed.com) to call the import API. // Kept narrow: only the extension-facing endpoints need cross-origin access.