revalidatePath
revalidatePath
允許您針對特定路徑按需清除 快取資料。
須知事項:
revalidatePath
僅在下次訪問包含的路徑時才會使快取失效。這意味著使用動態路由區段呼叫revalidatePath
不會立即觸發大量重新驗證,只有當下次訪問該路徑時才會失效。- 目前,在伺服器動作中使用
revalidatePath
會使 客戶端路由快取 (client-side Router Cache) 中的所有路由失效。此行為是暫時的,未來將更新為僅應用於特定路徑。- 使用
revalidatePath
僅會使 伺服器端路由快取 (server-side Route Cache) 中的 特定路徑 失效。
參數
path
: 可以是字串形式,代表您想重新驗證資料的關聯檔案系統路徑(例如/product/[slug]/page
),或是字面路由區段(例如/product/123
)。長度必須少於 1024 個字元,且區分大小寫。type
: (選填) 字串'page'
或'layout'
,用於變更要重新驗證的路徑類型。若path
包含動態區段(例如/product/[slug]/page
),則此參數為必填。若 path 指向字面路由區段(例如動態頁面/product/[slug]/page
中的/product/1
),則不應提供type
。
回傳值
revalidatePath
不會回傳任何值。
範例
重新驗證特定 URL
這將在下次訪問頁面時重新驗證一個特定 URL。
重新驗證頁面路徑
這將在下次訪問頁面時重新驗證符合提供的 page
檔案的所有 URL。這 不會 使特定頁面下方的頁面失效。例如,/blog/[slug]
不會使 /blog/[slug]/[author]
失效。
重新驗證佈局路徑
這將在下次訪問頁面時重新驗證符合提供的 layout
檔案的所有 URL。這會導致具有相同佈局的子頁面在下次訪問時重新驗證。例如在上述情況中,/blog/[slug]/[another]
也會在下次訪問時重新驗證。
重新驗證所有資料
這將清除客戶端路由快取 (Client-side Router Cache),並在下次訪問頁面時重新驗證資料快取 (Data Cache)。