fix: résoudre le cache Next.js qui bloquait la mise à jour des images
- app/macon/page.tsx + app/paysagiste/page.tsx : ajout de export const revalidate = 60 pour activer l'ISR (les pages étaient générées statiquement à la build, getSiteImages() n'était jamais rappelé entre deux déploiements) - app/api/admin/site-images/route.ts : appel de revalidatePath() après chaque PUT réussi pour purger immédiatement le cache de la page concernée (macon_, paysagiste_ → leur page démo, sinon → /) Résultat : la page se met à jour dans la seconde qui suit la sauvegarde dans l'admin, sans attendre le délai de 60s https://claude.ai/code/session_01PzA98VhLMmsHpzs7gnLHGs
This commit is contained in:
@@ -1,8 +1,17 @@
|
||||
import { NextRequest, NextResponse } from "next/server";
|
||||
import { revalidatePath } from "next/cache";
|
||||
import { createClient, createAdminClient } from "@/lib/supabase/server";
|
||||
import { DEFAULT_IMAGES, updateSiteImage } from "@/lib/site-images";
|
||||
import type { Profile } from "@/types/database.types";
|
||||
|
||||
/** Pages à invalider selon le préfixe de la clé image */
|
||||
function getPathsToRevalidate(key: string): string[] {
|
||||
if (key.startsWith("macon_")) return ["/macon"];
|
||||
if (key.startsWith("paysagiste_")) return ["/paysagiste"];
|
||||
// Clés de la page d'accueil (hero_portrait, about_photo, process_*, demo_*)
|
||||
return ["/"];
|
||||
}
|
||||
|
||||
interface SiteImageRow {
|
||||
key: string;
|
||||
url: string;
|
||||
@@ -119,5 +128,11 @@ export async function PUT(request: NextRequest) {
|
||||
);
|
||||
}
|
||||
|
||||
// Invalider immédiatement le cache Next.js des pages concernées
|
||||
const paths = getPathsToRevalidate(key);
|
||||
for (const path of paths) {
|
||||
revalidatePath(path);
|
||||
}
|
||||
|
||||
return NextResponse.json({ success: true });
|
||||
}
|
||||
|
||||
@@ -3,6 +3,8 @@ import Link from "next/link";
|
||||
import MaconClient from "./MaconClient";
|
||||
import { getSiteImages } from "@/lib/site-images";
|
||||
|
||||
export const revalidate = 60;
|
||||
|
||||
export const metadata: Metadata = {
|
||||
title:
|
||||
"Ma\u00e7onnerie & Extension de Maison \u00e0 Orchies, Cysoing, Saint-Amand-les-Eaux | Artisan Ma\u00e7on Nord (59)",
|
||||
|
||||
@@ -4,6 +4,8 @@ import Button from "@/components/ui/Button";
|
||||
import PaysagisteClient from "./PaysagisteClient";
|
||||
import { getSiteImages } from "@/lib/site-images";
|
||||
|
||||
export const revalidate = 60;
|
||||
|
||||
export const metadata: Metadata = {
|
||||
title: "Démo Site Paysagiste - Conception & Entretien Espaces Verts",
|
||||
description:
|
||||
|
||||
Reference in New Issue
Block a user