Cloudflare
历史版本
0.2 版本
缓存

缓存

@opennextjs/cloudflare 支持 缓存 (opens in a new tab)重新验证 (opens in a new tab) 你在应用中通过调用 fetch() (opens in a new tab) 发出的子请求所返回的数据。

默认情况下,你的 Next.js 应用中发出的所有 fetch() 子请求都会被缓存。请参阅 Next.js 文档 (opens in a new tab) 以了解如何为单个子请求或整个路由禁用缓存。

缓存会在部署之间持久存在 (opens in a new tab)。你需要负责重新验证/清除此缓存。

💡

Workers KV 是最终一致的,这意味着当使用默认的 60 秒 TTL 时,更新可能需要长达 60 秒才能在全球范围内反映出来。

如何启用缓存

@opennextjs/cloudflare 使用 Workers KV (opens in a new tab) 作为你的 Next.js 应用的缓存。Workers KV 速度快 (opens in a new tab) 并使用 Cloudflare 的 分层缓存 (opens in a new tab) 来提高缓存命中率。当你将缓存数据写入 Workers KV 时,你是写入到任何 Cloudflare 位置都可以读取的存储中。这意味着你的应用可以获取数据,将其缓存到 KV 中,然后随后世界各地发出的请求都可以从这个缓存中读取。

要启用缓存,你必须:

1. 创建 KV 命名空间

npx wrangler@latest kv namespace create <YOUR_NAMESPACE_NAME>

2. 将 KV 命名空间添加到你的 Worker

你的应用 worker 中使用的绑定名称默认为 NEXT_CACHE_WORKERS_KV。这是可配置的,可以通过设置 __OPENNEXT_KV_BINDING_NAME 构建时环境变量来更改。

[[kv_namespaces]]
binding = "NEXT_CACHE_WORKERS_KV"
id = "<YOUR_NAMESPACE_ID>"