Modal-Scroll: Wrapper als definite-height Scroll-Container (Safari-safe)
Ursache: Tailwinds min-h-screen (min-height:100vh) am Flex-Wrapper wächst in Safari nicht mit dem Panel – das Panel ragt sichtbar aus dem Bild, der Container meldet aber keinen Overflow → nichts scrollt, Speichern-Button ist unerreichbar (Chromium wächst dagegen mit, daher dort scheinbar ok). Fix: Die innere .min-h-screen-Box wird zum Scroll-Container mit DEFINITE height:100vh + overflow-y:auto (+ -webkit-overflow-scrolling:touch). Der Backdrop hält overflow:hidden. margin:auto am Panel zentriert kurze Modals und vermeidet Top-Clipping bei langen. Wirkt in Safari, Chrome, Firefox, iOS und Android (verifiziert via Chromium desktop + iPhone-Touch). Zusätzlich Cache-Busting für styles.css (?v=<mtime>) am <link>, damit ein hart zwischengespeichertes altes Stylesheet nach einem Deploy garantiert neu geladen wird. Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -158,6 +158,18 @@ app.use('/api/indeed-import', (req, res, next) => {
|
||||
|
||||
// Set EJS as template engine
|
||||
app.set('view engine', 'ejs');
|
||||
|
||||
// Cache-busting-Version für styles.css: die mtime der Datei beim Start. Wirkt
|
||||
// nur als Query-Parameter am <link href>, also nach jedem Deploy (neuer
|
||||
// Container → neue mtime → neue URL) erzwingt sie einen echten NeuDownload —
|
||||
// "no-cache" allein reicht manchmal nicht, wenn ein Browser die alte Datei
|
||||
// hart zwischengespeichert hat. Innerhalb eines Laufs bleibt der Wert stabil.
|
||||
try {
|
||||
const cssStat = fs.statSync(path.join(__dirname, 'public', 'css', 'styles.css'));
|
||||
app.locals.assetVersion = String(cssStat.mtimeMs || Date.now());
|
||||
} catch (e) {
|
||||
app.locals.assetVersion = String(Date.now());
|
||||
}
|
||||
app.set('views', path.join(__dirname, 'views'));
|
||||
|
||||
// ---------------------------------------------------------------------------
|
||||
|
||||
Reference in New Issue
Block a user