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中文網其他相關文章!