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

如何在Vercel上为Next.js Pages路由清除Edge缓存?

在Vercel上清除Next.js Pages路由的Edge缓存方案

针对你的需求(使用Next.js Pages路由、不能修改URL、无需重新部署清除Vercel Edge缓存,且无法使用CloudFront),以下是可行的解决方案:

1. 使用Vercel官方Invalidation API

这是最直接的主动缓存失效方式,支持批量清除指定路径的缓存:

  • 通过curl调用API:
    curl -X POST "https://api.vercel.com/v1/invalidations" \
      -H "Authorization: Bearer YOUR_VERCEL_TOKEN" \
      -H "Content-Type: application/json" \
      -d '{
        "projectId": "YOUR_PROJECT_ID",
        "paths": ["/*"]
      }'
    
    其中YOUR_VERCEL_TOKEN需从Vercel账户设置的「Tokens」页面生成,YOUR_PROJECT_ID可在项目设置的「General」页面找到。你可以指定单个路径(如/about)或通配符/*清除所有页面缓存。
  • 通过Vercel CLI操作:
    先安装Vercel CLI(npm install -g vercel),然后执行:
    vercel edge-cache invalidate --project YOUR_PROJECT_ID "/*"
    

2. 通过Vercel控制台手动清除缓存

适合临时的缓存清理操作,无需编写代码:

  1. 登录Vercel控制台并进入目标项目
  2. 切换到「Settings」选项卡
  3. 在「Edge Network」板块中,点击「Purge Edge Cache」按钮
  4. 输入要清除的路径(如/*清除全部),确认后即可完成缓存失效

3. 配置增量静态再生(ISR)结合主动刷新

如果你的页面使用静态生成,可以在getStaticProps中配置自动缓存过期,同时结合Invalidation API主动触发刷新:

  • 在页面的getStaticProps中设置revalidate参数,让缓存自动定期过期:
    export async function getStaticProps() {
      const data = await fetch("你的数据源地址");
      return {
        props: { data },
        revalidate: 3600 // 每1小时自动刷新缓存
      };
    }
    
  • 若需要立即刷新,仍然可以使用上述Invalidation API触发主动失效,无需等待自动过期。

内容的提问来源于stack exchange,提问作者Or Nakash

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.22 22:53:15