У меня есть HTML-страница, которая подается с сервера узлов, и я установил большое значение для максимального возраста -
function setCustomCacheControl(res, mimePath) {
try {
const cachedMimeType = ['text/html', 'text/css', 'text/javascript', 'application/javascript', 'text/plain', 'text/css', 'image/gif', 'image/png', 'image/jpeg', 'image/bmp', 'image/webp', 'image/svg+xml'];
if (cachedMimeType.indexOf(serveStatic.mime.lookup(mimePath)) > -1) {
res.header('Cache-Control', 'public, max-age=86400000');
} else {
res.header('Cache-Control', 'private, no-cache, no-store, must-revalidate, max-age=0');
res.header('Pragma', 'no-cache');
res.header('Expires', '-1');
}
} catch (e) {
console.error('Cache-Control: error', e);
}
}
После установки этого значения, если я изменяю любой JS или CSS, тогдаЯ не получаю обновления в браузере, если я не делаю жесткого обновления или очистки кеша.Причина в том, что я также устанавливаю максимальный возраст для HTML-страницы, чтобы браузер всегда загружал старое содержимое.
На этом этапе я удалил HTML, CSS и JS из списка кэшированных массивов и установил более низкое свойство max-age.
function setCustomCacheControl(res, mimePath) {
try {
const cachedMimeType = ['text/plain', 'image/gif', 'image/png', 'image/jpeg', 'image/bmp', 'image/webp', 'image/svg+xml'];
if (cachedMimeType.indexOf(serveStatic.mime.lookup(mimePath)) > -1) {
res.header('Cache-Control', 'public, max-age=24000');
} else {
res.header('Cache-Control', 'private, no-cache, no-store, must-revalidate, max-age=0');
res.header('Pragma', 'no-cache');
res.header('Expires', '-1');
}
} catch (e) {
console.error('Cache-Control: error', e);
}
}
Но я по-прежнему не получаю обновленную страницу, если не выполняю жесткое обновление или очистку кеша, поскольку браузер обслуживает эти файлы из кеша.
Мой вопрос: есть ли способ переопределить значение свойства max-age или игнорировать свойство max-age для этих файлов HTML, CSS и JS?
СпасибоRuzdi