Skip to content

Commit 70bceea

Browse files
committed
fix: add required pages_build_output_dir to wrangler.toml for Pages
- Add missing pages_build_output_dir configuration - Fix wrangler.toml validation error in deployment logs - Create comprehensive 500 error fix guide with D1 binding instructions - Ensure Cloudflare Pages can properly read wrangler.toml configuration
1 parent 5374704 commit 70bceea

File tree

2 files changed

+99
-0
lines changed

2 files changed

+99
-0
lines changed

PAGES_500_ULTIMATE_FIX.md

Lines changed: 96 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,96 @@
1+
# 🚨 500错误终极修复指南
2+
3+
## 问题诊断
4+
5+
从你的部署日志可以看出:
6+
1. ✅ 构建成功完成
7+
2. ✅ 文件成功上传
8+
3.**wrangler.toml 配置被忽略** - 这是关键问题
9+
4.**缺少 D1 数据库绑定** - 这会导致 500 错误
10+
11+
## 🛠️ 立即修复步骤
12+
13+
### 第一步:在 Cloudflare Pages 控制台配置
14+
15+
**必须在控制台手动配置以下内容:**
16+
17+
#### 1. D1 数据库绑定 (最重要!)
18+
- 打开你的 Pages 项目 → Settings → Functions
19+
- 在 "D1 database bindings" 部分:
20+
- **Variable name**: `DB`
21+
- **D1 database**: 选择 `katelyatv-db`
22+
- 点击保存
23+
24+
#### 2. 兼容性设置
25+
- 在同一个 "Functions" 页面:
26+
- **Compatibility date**: `2024-09-01`
27+
- **Compatibility flags**: `nodejs_compat`
28+
- 点击保存
29+
30+
#### 3. 环境变量
31+
- 在 Settings → Environment variables 中添加:
32+
```
33+
NODE_ENV = production
34+
NEXT_PUBLIC_STORAGE_TYPE = d1
35+
NEXT_PUBLIC_SITE_NAME = KatelyaTV
36+
NEXT_PUBLIC_SITE_DESCRIPTION = 高性能影视播放平台
37+
```
38+
39+
### 第二步:推送配置修复
40+
41+
我已经修复了 `wrangler.toml` 文件,现在推送:
42+
43+
```bash
44+
git add .
45+
git commit -m "fix: add required pages_build_output_dir to wrangler.toml"
46+
git push
47+
```
48+
49+
### 第三步:触发重新部署
50+
51+
- 在 Pages 控制台点击 "Retry deployment" 或
52+
- 推送代码会自动触发新部署
53+
54+
## 🔍 为什么之前失败?
55+
56+
1. **wrangler.toml 无效**
57+
- 缺少 `pages_build_output_dir` 属性
58+
- Pages 构建系统无法识别配置
59+
60+
2. **D1 数据库未绑定**
61+
- API路由尝试访问 `env.DB` 但未定义
62+
- 导致所有涉及数据库的API返回500错误
63+
64+
3. **兼容性标志未生效**
65+
- 虽然在 wrangler.toml 中定义了,但因为文件无效而被忽略
66+
67+
## 📋 验证步骤
68+
69+
配置完成后,检查以下内容:
70+
71+
1. **在 Pages 控制台验证**
72+
- Settings → Functions → D1 database bindings 显示 `DB` 绑定
73+
- Functions → Compatibility flags 显示 `nodejs_compat`
74+
75+
2. **部署日志检查**
76+
- 新的部署日志不再显示 "wrangler.toml is not valid"
77+
- 显示 D1 数据库绑定信息
78+
79+
3. **网站功能测试**
80+
- 首页正常加载 ✅
81+
- API接口正常工作 ✅
82+
- 管理员页面可访问 ✅
83+
84+
## 🎯 预期结果
85+
86+
修复后的部署应该:
87+
- ✅ wrangler.toml 配置被正确读取
88+
- ✅ D1 数据库成功绑定
89+
- ✅ 兼容性标志正确应用
90+
- ✅ 网站正常运行,无500错误
91+
92+
## ⚠️ 重要提醒
93+
94+
**D1 数据库绑定必须在 Pages 控制台手动配置**,不能仅通过代码实现。这是 Cloudflare Pages 的限制。
95+
96+
如果按照以上步骤操作后仍有问题,请在 Pages 控制台查看 Functions 的实时日志,并提供具体的错误信息。

wrangler.toml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,9 @@ name = "katelyatv"
22
compatibility_date = "2024-09-01"
33
compatibility_flags = ["nodejs_compat"]
44

5+
# Pages 配置
6+
pages_build_output_dir = ".vercel/output/static"
7+
58
[env.production]
69
name = "katelyatv"
710
compatibility_flags = ["nodejs_compat"]

0 commit comments

Comments
 (0)