3.0 KiB
3.0 KiB
萌芽导航 - 前后端分离版
- 前端:静态 PWA,部署到 Cloudflare Pages
- 后端:API Worker,部署到 Cloudflare Workers(目录
cf-nav-backend)
一、后端(Cloudflare Worker)
- 进入后端目录并安装依赖、部署:
cd cf-nav-backend
npm install
npm run deploy
-
修改
cf-nav-backend/wrangler.toml:- 如需新 KV:
wrangler kv:namespace create "NAV_KV",将返回的id填入[[kv_namespaces]]的id - 修改
[vars]中的ADMIN_PASSWORD,或使用wrangler secret put ADMIN_PASSWORD设置密钥
- 如需新 KV:
-
部署成功后记下 Worker 地址,例如:
https://cf-nav-backend.你的子域.workers.dev
二、前端(Cloudflare Pages)
- 配置 API 地址
编辑项目根目录下的config.js,将window.API_BASE改为你的后端 Worker 地址,例如:
window.API_BASE = 'https://cf-nav-backend.你的子域.workers.dev';
-
部署到 Pages
-
方式 A - Git 推送
- 在 Cloudflare Dashboard → Pages → 创建项目 → 连接 Git
- 构建:无(或留空)
- 输出目录:
/(根目录) - 部署后前端即可通过你的
*.pages.dev或自定义域名访问
-
方式 B - 直接上传
- Pages → 创建项目 → 直接上传
- 将当前仓库根目录下所有前端文件(含
config.js、index.html、app.js、admin.html、admin.js、styles.css、sw.js、manifest.webmanifest、logo.png、favicon.ico、offline.html、_redirects)打包上传
-
-
本地预览
npm install
npm run dev
浏览器打开 http://localhost:3000。本地未配置同源 API 时,需在 config.js 中填写后端 Worker 地址才能正常请求数据。
三、目录结构说明
mengya-nav/
├── index.html # 首页
├── admin.html # 后台
├── app.js # 首页逻辑
├── admin.js # 后台逻辑
├── config.js # API 地址(部署前必改)
├── styles.css
├── sw.js # PWA Service Worker
├── manifest.webmanifest
├── offline.html
├── logo.png / favicon.ico
├── _redirects # 后台请直接访问 /admin.html(勿用 /admin 避免重定向)
├── package.json # 前端脚本
└── cf-nav-backend/ # 后端 Worker
├── worker.js # 仅 API,无静态资源
├── wrangler.toml
└── package.json
四、CORS 与安全
- 后端 Worker 已设置
Access-Control-Allow-Origin: *,Pages 域名可正常请求。 - 生产环境建议在 Worker 中把
Access-Control-Allow-Origin改为你的 Pages 域名,并务必修改/保管好ADMIN_PASSWORD。
五、数据迁移
若之前已用旧版单 Worker 部署并使用了 KV,只需在 cf-nav-backend/wrangler.toml 中沿用原来的 KV namespace id,即可继续使用同一份数据,无需迁移。