docs/middleware/static-asset-caching.js

22 строки
767 B
JavaScript

import { setFastlySurrogateKey, SURROGATE_ENUMS } from './set-fastly-surrogate-key.js'
export default function setStaticAssetCaching(req, res, next) {
if (isChecksummed(req.path)) {
setFastlySurrogateKey(res, SURROGATE_ENUMS.MANUAL)
}
return next()
}
// True if the URL is known to contain some pattern of a checksum that
// would make it intelligently different if its content has changed.
function isChecksummed(path) {
if (path.startsWith('/assets/cb-')) return true
if (path.startsWith('/_next/static')) {
// E.g. /_next/static/chunks/0e226fb0-f47400d931ae7427.js
if (/[a-f0-9]{16}/.test(path)) return true
// E.g. /_next/static/NkhGE2zLVuDHVh7pXdtVC/_buildManifest.js
if (/\/\w{21}\//.test(path)) return true
}
return false
}