use consistent cache control

This commit is contained in:
acalcutt 2025-01-04 14:43:06 -05:00
parent 7e67f40fbf
commit 23f50d01a6
3 changed files with 18 additions and 2 deletions

View file

@ -42,6 +42,7 @@ export async function serve_font(options, allowedFonts, programOpts) {
if (sanitizedFontStack.length == 0) {
return res.status(400).send('Invalid font stack format');
}
fontstack = decodeURI(sanitizedFontStack);
let range = req.params.range;
const rangeMatch = range?.match(/^[\d-]+$/);
@ -54,6 +55,16 @@ export async function serve_font(options, allowedFonts, programOpts) {
);
}
const modifiedSince = req.get('if-modified-since');
const cc = req.get('cache-control');
if (modifiedSince && (!cc || cc.indexOf('no-cache') === -1)) {
const lastDate = new Date(lastModified).getTime();
const modDate = new Date(modifiedSince).getTime();
if (lastDate === modDate) {
return res.sendStatus(304);
}
}
try {
const concatenated = await getFontsPbf(
options.serveAllFonts ? null : allowedFonts,

View file

@ -665,7 +665,9 @@ async function handleTileRequest(
const modifiedSince = req.get('if-modified-since');
const cc = req.get('cache-control');
if (modifiedSince && (!cc || cc.indexOf('no-cache') === -1)) {
if (new Date(item.lastModified) <= new Date(modifiedSince)) {
const lastDate = new Date(item.lastModified).getTime();
const modDate = new Date(modifiedSince).getTime();
if (lastDate === modDate) {
return res.sendStatus(304);
}
}

View file

@ -143,7 +143,9 @@ export const serve_style = {
const modifiedSince = req.get('if-modified-since');
const cc = req.get('cache-control');
if (modifiedSince && (!cc || cc.indexOf('no-cache') === -1)) {
if (new Date(item.lastModified) <= new Date(modifiedSince)) {
const lastDate = new Date(item.lastModified).getTime();
const modDate = new Date(modifiedSince).getTime();
if (lastDate === modDate) {
return res.sendStatus(304);
}
}
@ -327,6 +329,7 @@ export const serve_style = {
spritePaths,
publicUrl,
name: styleJSON.name,
lastModified: new Date().toUTCString(),
};
return true;