缓存机制
@opennextjs/cloudflare
支持对应用中通过 fetch()
(opens in a new tab) 发起的子请求进行缓存 (opens in a new tab)和重新验证 (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>"