Cloudflare
历史版本
0.3 版本
缓存

缓存

@opennextjs/cloudflare 支持 缓存 (opens in a new tab)

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

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

请注意,重新验证 (opens in a new tab) 尚未支持。

Next.js 在构建时预热缓存。构建时的值由 Workers Assets (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

// wrangler.json
{
  // ...
  "kv_namespaces": [
    {
      "binding": "NEXT_CACHE_WORKERS_KV",
      "id": "<BINDING_ID>",
    },
  ],
}