From db6e6c299f2022eac648a9de460da982cbd2061e Mon Sep 17 00:00:00 2001 From: Pooya Parsa Date: Wed, 15 Feb 2023 18:28:41 +0100 Subject: [PATCH] fix: allow overriding assets `maxAge` using route rules nuxt/nuxt#19051 --- src/nitro.ts | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/src/nitro.ts b/src/nitro.ts index 54a548fdb8..c97b03d784 100644 --- a/src/nitro.ts +++ b/src/nitro.ts @@ -62,16 +62,15 @@ export async function createNitro(config: NitroConfig = {}): Promise { asset.baseURL = asset.baseURL || "/"; const isTopLevel = asset.baseURL === "/"; asset.fallthrough = asset.fallthrough ?? isTopLevel; - asset.maxAge = asset.maxAge ?? 0; + const routeRule = options.routeRules[asset.baseURL + "/**"]; + asset.maxAge = + (routeRule?.cache as { maxAge: number })?.maxAge ?? asset.maxAge ?? 0; if (asset.maxAge && !asset.fallthrough) { - options.routeRules[asset.baseURL + "/**"] = defu( - options.routeRules[asset.baseURL + "/**"], - { - headers: { - "cache-control": `public, max-age=${asset.maxAge}, immutable`, - }, - } - ); + options.routeRules[asset.baseURL + "/**"] = defu(routeRule, { + headers: { + "cache-control": `public, max-age=${asset.maxAge}, immutable`, + }, + }); } }