静态资源(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。