So fügen Sie Cache-Steuerung in generierten statischen Dateien hinzu (Nuxt 3)
P粉765684602
P粉765684602 2023-11-05 08:55:14
0
2
637

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粉765684602
P粉765684602

Antworte allen(2)
P粉124070451

对于 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粉618358260

我自己想办法。将以下代码添加到 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}` } },
    }
  }
})
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!