跳至內容
API 參考next.config.js 選項快取處理器 (cacheHandler)

自訂 Next.js 快取處理器

快取和重新驗證頁面(使用增量靜態再生)使用相同的共享快取。當部署到 Vercel時,ISR 快取會自動保存到持久儲存空間。

當自行託管時,ISR 快取會儲存到您的 Next.js 伺服器上的檔案系統(磁碟上)。使用 Pages Router 和 App Router 自行託管時,這會自動運作。

如果想將快取的頁面和資料保存到持久儲存空間,或是在多個容器或 Next.js 應用程式執行個體之間共用快取,您可以設定 Next.js 快取位置。

next.config.js
module.exports = {
  cacheHandler: require.resolve('./cache-handler.js'),
  cacheMaxMemorySize: 0, // disable default in-memory caching
}

查看自訂快取處理器的範例,並進一步了解實作方式。

API 參考

快取處理器可以實作下列方法:getsetrevalidateTag

get()

參數類型說明
key字串快取值的鍵值。

返回快取值,如果找不到則返回 null

set()

參數類型說明
key字串儲存資料的鍵值。
data資料或 null要快取的資料。
ctx{ tags: [] }提供的快取標籤。

返回 Promise<void>

revalidateTag()
參數類型說明
tagstringstring[]要重新驗證的快取標籤。

返回 Promise<void>。進一步了解重新驗證資料revalidateTag() 函式。

注意事項

  • revalidatePath 是建立在快取標籤之上的便利層。呼叫 revalidatePath 將會呼叫您的 revalidateTag 函式,然後您可以選擇是否要根據路徑標記快取鍵值。

版本歷史

版本變更
v14.1.0重新命名為 cacheHandler 並成為穩定版本。
v13.4.0incrementalCacheHandlerPath 支援 revalidateTag
v13.4.0incrementalCacheHandlerPath 支援獨立輸出。
v12.2.0新增實驗性 incrementalCacheHandlerPath