Loading...
Loading...
Compare original and translation side by side
references/deployment.mdreferences/build.mdreferences/functions.mdreferences/bindings.mdreferences/headers-redirects.mdreferences/domains.mdreferences/wrangler.mdreferences/deployment.mdreferences/build.mdreferences/functions.mdreferences/bindings.mdreferences/headers-redirects.mdreferences/domains.mdreferences/wrangler.md| Method | Best For | Limits |
|---|---|---|
| Git integration | CI/CD from GitHub/GitLab | Cannot switch to Direct Upload later |
| Direct Upload | Prebuilt assets, CI pipelines | Wrangler: 20k files, 25 MiB/file |
| C3 CLI | New project scaffolding | Framework-dependent |
| 方法 | 最佳适用场景 | 限制条件 |
|---|---|---|
| Git集成 | 来自GitHub/GitLab的CI/CD | 后续无法切换为直接上传方式 |
| 直接上传 | 预构建资源、CI流水线 | Wrangler:最多20000个文件,单个文件最大25 MiB |
| C3 CLI | 新项目脚手架搭建 | 依赖特定框架 |
undefinedundefinedundefinedundefinedundefinedundefinedundefinedundefined| Variable | Value |
|---|---|
| |
| Branch name |
| Commit SHA |
| Deployment URL |
| 变量名 | 取值 |
|---|---|
| |
| 分支名称 |
| 提交SHA值 |
| 部署URL |
/functions/functions/index.js → example.com/
/functions/api/users.js → example.com/api/users
/functions/users/[id].js → example.com/users/:id// functions/api/hello.js
export function onRequest(context) {
return new Response("Hello from Pages Function!");
}/functions/functions/index.js → example.com/
/functions/api/users.js → example.com/api/users
/functions/users/[id].js → example.com/users/:id// functions/api/hello.js
export function onRequest(context) {
return new Response("Hello from Pages Function!");
}| Export | Trigger |
|---|---|
| All methods |
| GET only |
| POST only |
| 导出函数 | 触发条件 |
|---|---|
| 所有请求方法 |
| 仅GET方法 |
| 仅POST方法 |
interface EventContext {
request: Request;
env: Env; // Bindings
params: Params; // Route parameters
waitUntil(promise: Promise<any>): void;
next(): Promise<Response>;
data: Record<string, any>;
}interface EventContext {
request: Request;
env: Env; // Bindings
params: Params; // Route parameters
waitUntil(promise: Promise<any>): void;
next(): Promise<Response>;
data: Record<string, any>;
}context.env| Binding | Access Pattern |
|---|---|
| KV | |
| R2 | |
| D1 | |
| Workers AI | |
For detailed binding configuration, see:skill.cloudflare-workers
context.env| 绑定类型 | 访问方式 |
|---|---|
| KV | |
| R2 | |
| D1 | |
| Workers AI | |
有关绑定配置的详细信息,请查看:技能文档。cloudflare-workers
_headers_redirectsundefined_headers_redirectsundefined
```txt
```txt
> **Warning:** `_headers` and `_redirects` do NOT apply to Pages Functions responses.
> **注意:** `_headers`和`_redirects`不会应用于Pages Functions的响应。_routes.json{
"version": 1,
"include": ["/api/*"],
"exclude": ["/static/*"]
}_routes.json{
"version": 1,
"include": ["/api/*"],
"exclude": ["/static/*"]
}// wrangler.jsonc
{
"name": "my-pages-app",
"pages_build_output_dir": "./dist",
"compatibility_date": "2024-01-01",
"kv_namespaces": [{ "binding": "KV", "id": "<NAMESPACE_ID>" }],
"d1_databases": [{ "binding": "DB", "database_name": "my-db", "database_id": "<ID>" }]
}// wrangler.jsonc
{
"name": "my-pages-app",
"pages_build_output_dir": "./dist",
"compatibility_date": "2024-01-01",
"kv_namespaces": [{ "binding": "KV", "id": "<NAMESPACE_ID>" }],
"d1_databases": [{ "binding": "DB", "database_name": "my-db", "database_id": "<ID>" }]
}npx wrangler pages dev ./distnpx wrangler pages dev ./distundefinedundefined_headers_redirects_redirectswrangler.toml.dev.vars_headers_redirects_redirectswrangler.toml.dev.vars| Issue | Solution |
|---|---|
| Functions not invoked | Check |
| Headers not applied | Ensure not a Functions response; attach in code |
| Build fails | Check build command exit code (must be 0) |
| Custom domain inactive | Verify DNS CNAME points to |
| Preview URLs indexed | Default |
| 问题 | 解决方法 |
|---|---|
| Functions未被调用 | 检查 |
| 标头未生效 | 确认响应并非来自Functions;需在代码中添加标头 |
| 构建失败 | 检查构建命令的退出码(必须为0) |
| 自定义域名未激活 | 验证DNS CNAME指向 |
| 预览URL被索引 | 系统会自动添加默认的 |
#!/bin/bash
if [ "$CF_PAGES_BRANCH" == "production" ]; then
npm run build:prod
else
npm run build:dev
fi#!/bin/bash
if [ "$CF_PAGES_BRANCH" == "production" ]; then
npm run build:prod
else
npm run build:dev
fi404.html404.html// _routes.json
{
"version": 1,
"include": ["/api/*"],
"exclude": ["/*"]
}// _routes.json
{
"version": 1,
"include": ["/api/*"],
"exclude": ["/*"]
}cloudflare-workerscloudflare-d1cloudflare-r2cloudflare-kvcloudflare-workerscloudflare-d1cloudflare-r2cloudflare-kv