Heim > Fragen und Antworten > Hauptteil
Ich verwende Nuxt 3, um ein SSR-Projekt zu erstellen.
Ich denke darüber nach, die generierten statischen Dateien im Verzeichnis Cache-Control
标头添加到 .output/_nuxt
abzulegen.
Ich habe den folgenden Code ausprobiert server/middleware/cache-control.ts
export default defineEventHandler((event) => { let res = event.res const year = 31536000 const tenmin = 600 const url = event.req.url const maxage = url.match(/(.+).(jpg|jpeg|gif|css|png|js|ico|svg|mjs)/) ? year : tenmin res.setHeader('Cache-Control', `max-age=${maxage} s-maxage=${maxage}`); })
Aber es funktioniert nicht.
Wie füge ich Cache-Control
zu den generierten statischen Dateien hinzu?
P粉1240704512023-11-06 00:30:22
对于 Nuxt3,我将其用作服务器中间件 server/middleware/cache-control.js
export default defineEventHandler((event) => { if (process.env.NODE_ENV == "production") { const url = event.node.req.url; const maxage = url.match(/(.+)\.(jpg|jpeg|gif|png|ico|svg|css|js|mjs)/) ? 60 * 60 * 12 * 30 : 60 * 60; appendHeader( event, "Cache-Control", `max-age=${maxage} s-maxage=${maxage}` ); } else { appendHeader(event, "Cache-Control", `max-age=${60} s-maxage=${60}`); } });
P粉6183582602023-11-06 00:03:59
我自己想办法。将以下代码添加到 nuxt.config.js 会将缓存控制附加到静态文件中。感谢您的支持!
export default defineNuxtConfig({ nitro: { routeRules: { "/img/**": { headers: { 'cache-control': `public,max-age=${year},s-maxage=${year}` } }, "/_nuxt/**": { headers: { 'cache-control': `public,max-age=${year},s-maxage=${year}` } }, } } })