ホームページ  >  記事  >  ウェブフロントエンド  >  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() の使用:

    • 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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。