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中文网其他相关文章!