Cloudflare
操作指南
静态资源

静态资源(public 文件夹)

位于 public 文件夹中的 Next 静态资源 (opens in a new tab) 使用 Workers 静态资源 (opens in a new tab) 提供服务。

Workers 静态资源可以拦截指向应用程序的请求(run_worker_first=false (opens in a new tab),这是默认值)。这是最具成本效益的选项,因为在这种情况下静态资源请求不会被计费。

另一个选项是先运行 Worker(run_worker_first=true),以更高的成本为代价提供更大的灵活性。

请注意,run_worker_first 也可以设置为模式列表——如果您只需要为部分静态资源提供更大的灵活性,这是一个很好的选择。

run_worker_first=false

run_worker_first 设置为 false 时,请求在到达 Worker 之前被拦截,并且不会被计费:

// wrangler.jsonc
{
  "name": "my-app",
  // ...
  "assets": {
    "directory": ".open-next/assets",
    "binding": "ASSETS",
    // 可选,因为 false 是默认值
    "run_worker_first": false,
  },
  // ...
}

当您不需要在中间件后面提供静态资源,或使用 Next 配置 (opens in a new tab) 中的 Next 重写和头部信息时,这是最具成本效益的选项。

run_worker_first=false 时,您仍然可以通过 Workers 静态资源配置 头部信息 (opens in a new tab)重定向 (opens in a new tab)

run_worker_first=true

run_worker_first 设置为 true 时,所有请求都将到达 Worker 并被计费:

// wrangler.jsonc
{
  "name": "my-app",
  // ...
  "assets": {
    "directory": ".open-next/assets",
    "binding": "ASSETS",
    "run_worker_first": true,
  },
  // ...
}

Open Next 静态资源解析器将用于从 Worker 检索静态资源。

run_worker_first=true 时,静态资源在中间件后面提供服务,并使用 Next 配置 (opens in a new tab) 中的 Next 重写和头部信息。在这种情况下,为 Workers 静态资源配置的 头部信息 (opens in a new tab)重定向 (opens in a new tab) 不适用。

如果您计划使用倾斜保护(skew protection),则应使用 run_worker_first=true