Les points de terminaison de l'API Next.js ne sont pas mis à jour après le déploiement
Problème : Données récupérées à partir d'une base de données via un point de terminaison de l'API reste statique après le déploiement du projet.
Analyse : Le problème provient probablement de la mise en cache. Dans Next.js, la mise en cache des routes API et des composants serveur est activée par défaut pour l'optimisation des performances. Cette mise en cache peut interférer avec les mises à jour des données.
Solution :
Pour empêcher la mise en cache et garantir des mises à jour dynamiques des données, ajustez le comportement de mise en cache comme suit :
Utilisation de fetch() :
Ajoutez l'option revalidate à la requête fetch() pour spécifier un intervalle de revalidation en secondes :
fetch('https://...', { next: { revalidate: 10 } });
Vous pouvez également définir l'option de cache sur no-store pour désactiver la mise en cache :
fetch('https://...', { cache: 'no-store' });
Utilisation de la configuration du segment de route :
Dans le fichier layout.js, page.js ou route.js, ajoutez le code suivant pour désactiver la mise en cache pour le segment de route spécifique :
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(); // ... }
En suivant ces étapes, vous pouvez désactiver la mise en cache des points de terminaison de l'API et garantir que les mises à jour des données sont reflétées rapidement après le déploiement.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!