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

如何在Vercel上自动禁用Next.js项目的缓存?

解决Next.js + Vercel部署后数据不自动更新的缓存问题

你的核心问题是App Router模式下,页面或数据的缓存没有在数据更新后自动失效,即使配置了next.config.js的headers也没起作用。下面是针对性的解决方案:

1. 先明确两类缓存的差异

Next.js App Router里有两类缓存会导致数据不更新:

  • 服务器端/边缘缓存:Next.js或Vercel在边缘节点缓存的页面或数据请求结果
  • 客户端缓存:浏览器本地缓存的页面资源

你当前的next.config.js配置只针对客户端缓存,对服务器端缓存无效,这是配置没生效的核心原因。

2. 强制数据请求不缓存(针对Server Components/数据获取)

如果你的数据是通过fetch获取的,必须在请求里明确禁用缓存:

// 在Server Component或数据获取函数中
async function getLatestData() {
  // 方法1:使用cache: 'no-store'
  const res = await fetch('你的数据库接口地址', {
    cache: 'no-store'
  });
  // 方法2:使用next: { revalidate: 0 }(效果一致)
  // const res = await fetch('你的数据库接口地址', {
  //   next: { revalidate: 0 }
  // });
  return res.json();
}

3. 强制页面动态渲染(禁用页面缓存)

如果你的页面是静态生成的(App Router默认行为),即使数据更新,页面也不会重新渲染。在页面组件顶部添加以下配置,强制每次请求都动态生成页面:

// app/[page]/page.js 顶部
export const dynamic = 'force-dynamic';
// 或者更严格的组合配置:
// export const dynamicParams = true; 
// export const revalidate = 0;

4. 修正next.config.js的headers配置

把路由匹配规则改成/:path*,并补充更完整的缓存控制值,确保覆盖所有路径:

/** @type {import('next').NextConfig} */
const nextConfig = {
  experimental: {
    appDir: true,
  },
  async headers() {
    return [
      {
        source: '/:path*', // 更符合Next.js路由规则的匹配方式
        headers: [
          {
            key: 'Cache-Control',
            value: 'no-store, no-cache, must-revalidate, proxy-revalidate'
          },
        ],
      },
    ];
  },
};

module.exports = nextConfig;

5. 禁用Vercel边缘缓存

如果以上配置还没生效,需要在Vercel平台层面调整:

  • 进入项目控制台,找到Settings -> Edge Network -> Cache Control
  • 设置默认缓存策略为no-store,或者针对你的数据接口路径单独配置
  • 部署时可以在build命令中添加环境变量强制禁用缓存:
// package.json
"scripts": {
  "build": "NEXT_PRIVATE_NO_CACHE=1 next build",
  "start": "next start"
}

6. 客户端手动触发刷新(可选)

如果是客户端组件,在数据提交成功后,可以手动触发页面刷新获取最新数据:

'use client';
import { useRouter } from 'next/navigation';

async function handleSubmit() {
  // 提交数据到数据库的逻辑
  await submitData();
  // 刷新页面获取最新数据
  const router = useRouter();
  router.refresh();
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 06:05:23