本地开发环境设置指南
已完成的文件创建
✅ 以下文件已经创建完成:
- package.json - Node.js 依赖配置
- vercel.json - Vercel 部署配置
- api/add-city.js - 添加城市的 Serverless API
- admin.html - 足迹管理界面
- .env.local - 本地环境变量(需要配置)
- .gitignore - 已更新,忽略 node_modules 等
本地测试方案
由于完整的 Vercel 环境需要登录,这里提供两种本地测试方案:
方案 1:仅查看管理界面(推荐快速预览)
- 启动 Jekyll 服务器(如果已安装 Jekyll):
bundle install bundle exec jekyll serve -
访问管理界面: 打开浏览器访问:
http://localhost:4000/admin.html - 查看现有足迹地图:
访问:
http://localhost:4000/footprint.html
注意:此方案下 API 功能不可用,但可以查看界面效果
方案 2:完整功能测试(使用 Vercel CLI)
- 登录 Vercel:
npx vercel login按提示完成登录
- 配置环境变量:
编辑
.env.local文件,填入实际的值:GITHUB_TOKEN=ghp_你的GitHub_Token API_AUTH_TOKEN=你的管理密码获取 GitHub Token:
- 访问:https://github.com/settings/tokens
- Generate new token (classic)
- 勾选
repo权限 - 生成并复制 token
- 启动 Vercel 开发服务器:
npx vercel dev - 访问本地站点:
- 管理界面:http://localhost:3000/admin.html
- 足迹地图:http://localhost:3000/footprint.html
- 测试添加城市功能:
- 打开 admin.html
- 填写表单
- 输入管理密码(.env.local 中的 API_AUTH_TOKEN)
- 提交测试
方案 3:直接部署到 Vercel 在线测试
如果本地环境配置困难,可以直接部署到 Vercel:
-
访问 Vercel:https://vercel.com
- 导入 GitHub 仓库:
- New Project
- Import Git Repository
- 选择 pea1ce.github.io
- 配置构建设置:
- Framework Preset: Other
- Build Command:
bundle install && bundle exec jekyll build - Output Directory:
_site
- 添加环境变量:
在 Vercel 项目设置中添加:
GITHUB_TOKEN=你的GitHub_Token API_AUTH_TOKEN=你的管理密码 GITHUB_OWNER=pea1ce GITHUB_REPO=pea1ce.github.io GITHUB_BRANCH=master - 部署并测试:
- 等待部署完成
- 访问
https://your-project.vercel.app/admin.html - 测试添加城市功能
功能说明
管理界面 (admin.html)
功能包括:
- ✅ 用户友好的表单界面
- ✅ Token 认证(首次输入后保存在浏览器)
- ✅ 输入验证和错误提示
- ✅ 支持添加国内城市(三级结构)
- ✅ 支持添加国外国家
- ✅ 添加游记链接和备注
API 功能 (api/add-city.js)
- ✅ Token 认证保护
- ✅ 从 GitHub 读取现有数据
- ✅ 智能合并新数据到 JSON
- ✅ 自动提交到 GitHub
- ✅ 输入清理(防止 XSS)
- ✅ 错误处理和重试机制
工作流程
用户在 admin.html 填写表单
↓
提交到 /api/add-city(带 Token)
↓
API 验证 Token
↓
从 GitHub 读取 travel_cities.json
↓
添加新城市到 JSON
↓
提交更新回 GitHub(自动 commit)
↓
GitHub webhook 触发 Vercel 重新部署
↓
2-3 分钟后地图显示新数据
测试示例
添加国内城市
用户: oliver
国家: China
省份: 江苏
城市: 苏州市
备注: 2024-03-10,周末游
添加国外国家
用户: oliver
国家: Thailand
省份: (留空)
城市: (留空)
备注: 2023-12-20,泰国之旅
常见问题
Q: 本地测试时 API 调用失败?
A: 确保:
- 已启动
vercel dev .env.local中配置了正确的环境变量- GitHub Token 有
repo权限
Q: 提交后地图没有更新?
A: 这是正常的,因为:
- 数据已提交到 GitHub(可以检查仓库)
- Vercel 需要重新部署(2-3 分钟)
- 刷新页面前等待部署完成
Q: 忘记了管理密码?
A: 打开浏览器控制台,执行:
localStorage.removeItem('apiToken')
然后刷新页面,重新输入密码
下一步
如果一切正常,你可以:
- ✅ 添加更多城市测试
- ✅ 自定义 admin.html 的样式
- ✅ 在 footprint.html 添加”管理”按钮
- ✅ 配置自定义域名 (heyiping.cn)
- ✅ 添加更多功能(批量导入、照片墙等)
文件清单
mysite/
├── api/
│ └── add-city.js ✅ 已创建
├── admin.html ✅ 已创建
├── vercel.json ✅ 已创建
├── package.json ✅ 已创建
├── .env.local ✅ 已创建(需配置)
├── .gitignore ✅ 已更新
└── LOCAL_SETUP.md ✅ 本文档
祝你使用愉快!🎉