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

SvelteKit如何清除CSS与JavaScript缓存?

解决Svelte项目部署到Vercel后JS/CSS缓存问题

你添加的<meta>缓存控制标签仅对HTML文档本身生效,无法控制浏览器对JS、CSS这类静态资源的缓存行为——这类资源的缓存规则由HTTP响应头或资源文件名的内容哈希决定。

解决方案

1. 确保静态资源自动添加内容哈希

SvelteKit/Vite在构建时默认会给JS、CSS等静态资源文件名添加内容哈希(例如app.abc123.js),内容更新时文件名会自动变化,浏览器会识别到新文件并加载最新版本。如果你的项目没有开启这个功能,检查vite.config.js或svelte.config.js,确保没有禁用该默认行为。

2. 通过Vercel配置自定义缓存响应头

在项目根目录创建vercel.json文件,添加以下配置,直接给静态资源设置缓存规则:

{
  "headers": [
    {
      "source": "/(.*\\.(js|css|png|jpg|jpeg|gif|svg|ico))",
      "headers": [
        {
          "key": "Cache-Control",
          "value": "public, max-age=0, must-revalidate"
        }
      ]
    },
    {
      "source": "/(.*\\.html$|^/$)",
      "headers": [
        {
          "key": "Cache-Control",
          "value": "no-cache, no-store, must-revalidate"
        }
      ]
    }
  ]
}
  • 对JS/CSS等资源:max-age=0, must-revalidate 强制浏览器每次请求都向服务器验证资源是否更新,服务器返回304则使用缓存,否则拉取新资源。
  • 对HTML文档:no-cache, no-store, must-revalidate 确保浏览器每次都从服务器获取最新的HTML,避免因HTML缓存导致引用旧资源地址。

3. 部署后验证缓存规则

部署完成后,打开浏览器开发者工具(F12),切换到「网络」标签页,刷新页面查看JS/CSS资源的Response Headers,确认Cache-Control已设置为上述配置。

内容的提问来源于stack exchange,提问作者angry kiwi

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.27 18:22:48