缓存
@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>"