デプロイ後に Next.js API エンドポイントが更新されない
問題: API エンドポイント経由でデータベースからデータがフェッチされるプロジェクトのデプロイメント後も静的なままです。
分析: この問題はキャッシュに起因している可能性があります。 Next.js では、パフォーマンスを最適化するために、API ルートとサーバー コンポーネントのキャッシュがデフォルトで有効になっています。このキャッシュはデータの更新を妨げる可能性があります。
解決策:
キャッシュを防止し、動的データ更新を確実にするには、次のようにキャッシュ動作を調整します。
fetch() の使用:
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 中国語 Web サイトの他の関連記事を参照してください。