From 970f1d2b5d78a8b83d451c7544c26a3b2517b592 Mon Sep 17 00:00:00 2001 From: Sacha STAFYNIAK Date: Sat, 5 Mar 2022 16:30:06 +0100 Subject: [PATCH] fix: serve admin static file with public cache --- packages/core/admin/server/routes/serve-admin-panel.js | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/packages/core/admin/server/routes/serve-admin-panel.js b/packages/core/admin/server/routes/serve-admin-panel.js index c8935a756b..f5ef695d5d 100644 --- a/packages/core/admin/server/routes/serve-admin-panel.js +++ b/packages/core/admin/server/routes/serve-admin-panel.js @@ -32,7 +32,7 @@ const registerAdminPanelRoute = ({ strapi }) => { path: `${strapi.config.admin.path}/:path*`, handler: [ serveAdminMiddleware, - serveStatic(buildDir, { maxage: 60000, defer: false, index: 'index.html' }), + serveStatic(buildDir, { maxage: 31536000, defer: false, index: 'index.html' }), ], config: { auth: false }, }, @@ -46,6 +46,13 @@ const serveStatic = (filesDir, koaStaticOptions = {}) => { return async (ctx, next) => { const prev = ctx.path; const newPath = path.basename(ctx.path); + const ext = path.extname(ctx.path); + + // publicly cache static files to avoid unnecessary network & disk access + if (ext === '.css' || ext === '.js') { + ctx.set('cache-control', 'public, max-age=31536000, immutable'); + } + ctx.path = newPath; await serve(ctx, async () => { ctx.path = prev;