Previews 不会继承生产设置。在配置文件的 previews 块中定义它们。有关绑定如何共享或隔离数据和状态,请参阅资源和隔离。
在团队分支来源的分支(例如 main)上定义起始 previews 块。Git 会将配置文件带入每个新分支。
当某个分支的 Preview 需要不同设置时,在该分支上更改 previews 块。运行 npx wrangler preview 时,Wrangler 将当前分支的配置文件作为真实来源。有关设置说明,请参阅快速入门。
previewsAPP_ENV = "preview"API_URL = "api.staging.example.com"UPLOADS = preview-r2-bucketAPP_ENV = "preview"API_URL = "api.staging.example.com"UPLOADS = login-test-r2-bucketDEBUG = "true"已添加APP_ENV = "preview"API_URL = "api.staging.example.com"UPLOADS = preview-r2-bucketAPP_ENV = "preview"API_URL = "api.dev.example.com"UPLOADS已移除npx wrangler previewuses the configuration file on feature/login as the source of truth
密钥不能存储在 Wrangler 配置文件中。为了保留分支模型,而无需手动为每个 Preview 应用相同密钥,请在 Previews Base 配置中一次性设置共享密钥。每个新 Preview 创建时都会收到这些密钥。需要时为单个 Preview 设置不同的值。之后对 Base 密钥的更改仅应用于新 Preview,因此活动 Preview 保持不变。
| 我想要 | 命令 |
|---|---|
| 向 Base 配置 添加密钥 | npx wrangler preview base-config secret put SECRET_NAME |
| 向 一个 Preview 添加密钥 | npx wrangler preview secret put SECRET_NAME --name <preview> |
| 从 Base 配置 移除密钥 | npx wrangler preview base-config secret delete SECRET_NAME |
| 从 一个 Preview 移除密钥 | npx wrangler preview secret delete SECRET_NAME --name <preview> |
如果省略 --name 标志,则默认为当前 git 分支。
Wrangler 文件在顶层包含生产设置,在 previews 块中包含 Preview 设置。previews 块是必需的,但如果 Preview 不需要单独设置,它可以是空的。将 Preview 绑定指向预发布或测试资源,而不是生产资源。
{
// ...
"vars": {
"ENVIRONMENT": "production"
},
"r2_buckets": [
{
"binding": "UPLOADS",
"bucket_name": "prod-uploads"
}
],
// ...
"previews": {
// ...
"vars": {
"ENVIRONMENT": "preview"
},
"r2_buckets": [
{
"binding": "UPLOADS",
"bucket_name": "r2-staging"
}
]
// ...
}
}[vars]
ENVIRONMENT = "production"
[[r2_buckets]]
binding = "UPLOADS"
bucket_name = "prod-uploads"
[previews.vars]
ENVIRONMENT = "preview"
[[previews.r2_buckets]]
binding = "UPLOADS"
bucket_name = "r2-staging"如果 npx wrangler preview 创建了 Preview URL 但警告缺少绑定,则 URL 已上线但运行时配置不完整。将缺少的绑定复制到 previews 块中,使用对 Preview 安全的值和测试资源。有关资源共享行为,请参阅资源和隔离。
使用此表确定每项设置的位置。
| 设置 | 行为 |
|---|---|
| 仅顶层 | |
assets | 即使有 ASSETS 绑定,也保留在顶层。npx wrangler preview 会从你正在预览的分支上传资源。 |
compatibility_date、compatibility_flags | 保留在顶层。 |
顶层或 previews 块 | |
placement | 顶层 placement 适用于 Previews。添加 previews.placement 可覆盖它。 |
observability、logpush、limits | 仅当你需要 Preview 专用值时才添加到 previews。有关可观测性设置,请参阅测试和调试。 |
需要 previews 块 | |
vars | 添加带 Preview 值的 previews.vars。 |
| 存储和数据绑定 | 添加相同的绑定名称,指向对 Preview 安全的资源。例如:KV、D1、R2、Hyperdrive、Vectorize、Analytics Engine、Pipelines 和 Secrets Store。 |
| D1 迁移 | 在基础分支上配置共享预发布数据库。要隔离一个分支,请同时更新其 Preview 绑定和迁移配置以使用不同数据库。在部署该分支的 Preview 之前,将迁移应用到该分支使用的数据库。 |
| Workflows | 添加指向现有 Workflow 的绑定。更改 Workflow 名称时,Previews 不会创建 Workflow。 |
| Queue producers | 添加 previews.queues.producers,指向对 Preview 安全的队列。 |
define | 添加 previews.define。顶层值不会被继承。 |
tail_consumers | 添加 previews.tail_consumers。顶层 Tail Worker 目标不会被继承。 |
| Durable Objects | 每个 Preview 会自动获得新的 Durable Object namespace 和存储。将类和迁移保留在顶层。仅当你的代码从 env 读取绑定时,才添加 previews.durable_objects.bindings。 |
| Containers | 每个 Preview 会自动获得新的 container app 和 container instances。将迁移保留在顶层,并在 previews.containers 下添加容器定义。将生产容器定义保留在顶层 containers 中。仅当你的代码从 env 读取容器绑定时,才在 previews 下添加 Durable Object 绑定。 |
| API 绑定 | 如果你的代码从 env 读取绑定,请在 previews 下添加 ai、browser、images、stream、media、worker_loaders 或 version_metadata。不需要预发布资源。 |
如果 Worker 仅使用顶层设置,请包含一个空的 previews 块:
{
// Set this to today's date
"compatibility_date": "2026-11-14",
"assets": {
"directory": "./public"
},
"previews": {}
}# Set this to today's date
compatibility_date = "2026-11-14"
previews = { }
[assets]
directory = "./public"不要将 Queue consumers、Cron Triggers 或生产路由添加到 previews。这些不会以 Previews 为目标。有关 Preview 主机名,请参阅自定义域名。
来自 Preview 的 Service bindings 会调用绑定 Worker 的生产部署。更多限制请参阅限制。
你可以在仪表板中配置 Previews Base 设置,但必须将生成的配置复制到 Wrangler 文件中。为避免这一额外步骤,请直接在 Wrangler 文件中配置 Preview 设置。
-
在 Cloudflare 仪表板中,前往 Workers & Pages。
前往 Workers & Pages ↗ -
选择你的 Worker。
-
前往 Settings(设置)。Variables and secrets(变量和密钥)、Bindings(绑定)、Observability(可观测性) 和 Runtime(运行时) 部分具有 Production(生产) 和 Previews Base 切换。

-
在每个部分选择 Previews Base,以配置新 Preview 的起始值。你可以从生产导入名称和值,然后编辑它们。必须手动重新输入密钥。

-
使用生成的
previews配置更新 Wrangler 配置文件。这可保持未来部署同步。