revalidatePath
revalidatePath
belirli bir yol için önbelleğe alınmış verileri isteğe bağlı olarak temizlemenizi sağlar.
Bildiğim iyi oldu:
revalidatePath
hem Node.js hem de Edge çalışma zamanlarında kullanılabilir.revalidatePath
önbelleği yalnızca dahil edilen yol bir sonraki ziyarette geçersiz kılar. Bu, dinamik bir rota segmenti ilerevalidatePath
adresinin çağrılmasının aynı anda birçok yeniden doğrulamayı tetiklemeyeceği anlamına gelir. Geçersiz kılma işlemi yalnızca yol bir sonraki ziyaret edildiğinde gerçekleşir.
Parameters
revalidatePath(path: string, type?: 'page' | 'layout'): void;
path
: Yeniden doğrulamak istediğiniz verilerle ilişkili dosya sistemi yolunu temsil eden bir dize (örneğin,/product/[slug]/page
) veya gerçek yol segmenti (örneğin,/product/123
). 1024 karakterden az olmalıdır.type
: (isteğe bağlı) Yeniden doğrulanacak yolun türünü değiştirmek için'page'
veya'layout'
dizesi.path
dinamik bir segment içeriyorsa (örneğin,/product/[slug]/page
),page
olmalıdır.
Returns
revalidatePath
herhangi bir değer döndürmez.
Examples
Revalidating A Specific URL
import { revalidatePath } from 'next/cache'
revalidatePath('/blog/post-1')
Bu, bir sonraki sayfa ziyaretinde belirli bir URL'yi yeniden doğrulayacaktır.
Revalidating A Page Path
import { revalidatePath } from 'next/cache'
revalidatePath('/blog/[slug]', 'page')
// or with route groups
revalidatePath('/(main)/post/[slug]', 'page')
Bu, bir sonraki sayfa ziyaretinde sağlanan page
dosyasıyla eşleşen herhangi bir URL'yi yeniden doğrulayacaktır. Bu, belirli sayfanın altındaki sayfaları geçersiz kılmaz. Örneğin, /blog/[slug]
adresi /blog/[slug]/[author]
adresini geçersiz kılmaz.
Revalidating A Layout Path
import { revalidatePath } from 'next/cache'
revalidatePath('/blog/[slug]', 'layout')
// or with route groups
revalidatePath('/(main)/post/[slug]', 'layout')
Bu, bir sonraki sayfa ziyaretinde sağlanan layout
dosyasıyla eşleşen herhangi bir URL'yi yeniden doğrulayacaktır. Bu, aynı düzene sahip alttaki sayfaların bir sonraki ziyarette yeniden doğrulanmasına neden olacaktır. Örneğin, yukarıdaki durumda, /blog/[slug]/[another]
adresi de bir sonraki ziyarette yeniden doğrulanacaktır.
Revalidating All Data
import { revalidatePath } from 'next/cache'
revalidatePath('/', 'layout')
Bu, İstemci tarafı Yönlendirici Önbelleğini temizleyecek ve bir sonraki sayfa ziyaretinde Veri Önbelleğini yeniden doğrulayacaktır.
Server Action
'use server'
import { revalidatePath } from 'next/cache'
export default async function submit() {
await submitForm()
revalidatePath('/')
}
Route Handler
import { revalidatePath } from 'next/cache'
import { NextRequest } from 'next/server'
export async function GET(request: NextRequest) {
const path = request.nextUrl.searchParams.get('path')
if (path) {
revalidatePath(path)
return Response.json({ revalidated: true, now: Date.now() })
}
return Response.json({
revalidated: false,
now: Date.now(),
message: 'Missing path to revalidate',
})
}