自訂 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 參考
快取處理器可以實作下列方法:get
、set
和 revalidateTag
。
get()
參數 | 類型 | 說明 |
---|---|---|
key | 字串 | 快取值的鍵值。 |
返回快取值,如果找不到則返回 null
。
set()
參數 | 類型 | 說明 |
---|---|---|
key | 字串 | 儲存資料的鍵值。 |
data | 資料或 null | 要快取的資料。 |
ctx | { tags: [] } | 提供的快取標籤。 |
返回 Promise<void>
。
revalidateTag()
返回 Promise<void>
。進一步了解重新驗證資料或 revalidateTag()
函式。
注意事項
revalidatePath
是建立在快取標籤之上的便利層。呼叫revalidatePath
將會呼叫您的revalidateTag
函式,然後您可以選擇是否要根據路徑標記快取鍵值。
版本歷史
版本 | 變更 |
---|---|
v14.1.0 | 重新命名為 cacheHandler 並成為穩定版本。 |
v13.4.0 | incrementalCacheHandlerPath 支援 revalidateTag 。 |
v13.4.0 | incrementalCacheHandlerPath 支援獨立輸出。 |
v12.2.0 | 新增實驗性 incrementalCacheHandlerPath 。 |