Next.js API ルートのデータ キャッシュ: 更新のトラブルシューティング
API 経由でデータベースからデータを取得する Next.js アプリケーションをデプロイする場合エンドポイントでは、展開後にデータベースに変更が加えられたにもかかわらず、データが静的なままになるという問題が発生する可能性があります。根本的な原因は、多くの場合、本番モードの Next.js によって実装されたキャッシュ メカニズムにあります。
Next.js のキャッシュについて
アプリ ディレクトリと本番モードでは、次の手順を実行します。 .js は、デフォルトで API ルートおよびサーバー コンポーネントで取得したデータをキャッシュします。これにより、データベース クエリが減り、応答時間が短縮されてパフォーマンスが最適化されます。ただし、データの更新が妨げられる可能性があります。
キャッシュの無効化
キャッシュを防止するには、次のオプションを使用して fetch() メソッドを変更できます:
<code class="javascript">fetch('https://...', { next: { revalidate: 10 } }); </code>
Route Segment Config
fetch() を使用していない場合、またはキャッシュを設定したい場合ルート レベルでは、ルート セグメント設定を使用できます。これにより、ルート コンポーネント内でキャッシュ オプションを設定できるようになります。
<code class="javascript">// layout.js OR page.js OR route.js import prisma from './lib/prisma'; /* Below option is when you want no caching at all, there are more options on the doc depending on your needs. */ 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(); // ... }</code>
これらのキャッシュ調整を適用することで、Next.js アプリケーションがデプロイ後にデータベースから新しいデータを取得し、精度とリアルタイム性を維持できるようになります。更新情報。
以上がデプロイ後に Next.js API ルート データが更新されないのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。