You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Nuxt3如何为自动生成的静态文件添加Cache-Control头?

在Nuxt3中配置自动生成文件的Cache-Control响应头

在Nuxt3中,由于底层基于Nitro引擎,配置静态资源缓存的方式和Nuxt2有所不同,需根据部署模式选择对应方案:

1. 静态生成(SSG,nuxt generate)场景

通过Nuxt配置中的nitro.publicAssets字段,可为自动生成的静态资源(包括_nuxt目录下的编译产物、public目录下的文件)设置缓存规则:

export default defineNuxtConfig({
  nitro: {
    publicAssets: [
      // 配置public目录下的静态资源缓存
      {
        baseURL: '/',
        dir: 'public',
        maxAge: '1y'
      },
      // 配置Nuxt自动生成的_nuxt目录资源缓存
      {
        baseURL: '/_nuxt/',
        dir: '.nuxt/dist/client',
        maxAge: '1y'
      }
    ]
  }
})

maxAge参数支持1y(1年)、30d(30天)这类可读性格式,最终会转换为对应秒数并生成Cache-Control响应头。

2. SSR/混合部署(nuxt build/nuxt dev)场景

若项目运行在SSR或混合模式下,可通过routeRules字段为特定路径的资源设置缓存头:

export default defineNuxtConfig({
  routeRules: {
    // 匹配Nuxt自动生成的所有资源
    '/_nuxt/**': { headers: { 'Cache-Control': 'max-age=31536000, immutable' } },
    // 匹配所有图片资源
    '/**/*.{png,jpg,jpeg,gif,svg,ico}': { headers: { 'Cache-Control': 'max-age=31536000, immutable' } },
    // 匹配所有JS/CSS资源
    '/**/*.{js,css}': { headers: { 'Cache-Control': 'max-age=31536000, immutable' } }
  }
})

immutable标记会告知浏览器该资源不会被修改,无需再次验证缓存,可进一步优化缓存效率。

注意:若使用第三方托管平台(如Vercel、Netlify)部署静态站点,平台可能自带缓存配置,建议同时检查平台设置以确保规则生效。

内容的提问来源于stack exchange,提问作者Ronen Teva

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.15 01:46:09