首页  >  文章  >  web前端  >  为什么我的 Next.js API 端点在部署后没有更新?

为什么我的 Next.js API 端点在部署后没有更新?

Linda Hamilton
Linda Hamilton原创
2024-11-02 08:31:02450浏览

Why are My Next.js API Endpoints Not Updating After Deployment?

Next.js API 端点在部署后未更新

问题: 通过 API 端点从数据库获取数据项目部署后保持静态。

分析:问题可能源于缓存。在 Next.js 中,API 路由和服务器组件默认启用缓存以优化性能。此缓存可能会干扰数据更新。

解决方案:

要防止缓存并确保动态数据更新,请按如下方式调整缓存行为:

  • 使用 fetch():

    • 将 revalidate 选项添加到 fetch() 请求以指定重新验证间隔(以秒为单位):

      fetch('https://...', { next: { revalidate: 10 } });
    • 或者,将缓存选项设置为 no-store 以禁用缓存:

      fetch('https://...', { cache: 'no-store' });
  • 使用路由段配置:

    • 在layout.js、page.js或route.js文件中,添加以下代码以禁用特定路由段的缓存:

      import prisma from './lib/prisma';
      
      export const dynamic = 'force-dynamic';
      
      async function getPosts() {
        const posts = await prisma.post.findMany();
        return posts;
      }
      
      export default async function Page() {
        const posts = await getPosts();
        // ...
      }

通过执行以下步骤,您可以禁用 API 端点的缓存并确保部署后立即反映数据更新。

以上是为什么我的 Next.js API 端点在部署后没有更新?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn