Files
mengya-nav/cf-nav-frontend/README.md
2026-03-11 20:46:24 +08:00

83 lines
3.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 萌芽导航 - 前后端分离版
- **前端**:静态 PWA部署到 **Cloudflare Pages**
- **后端**API Worker部署到 **Cloudflare Workers**(目录 `cf-nav-backend`
## 一、后端Cloudflare Worker
1. 进入后端目录并安装依赖、部署:
```bash
cd cf-nav-backend
npm install
npm run deploy
```
2. 修改 `cf-nav-backend/wrangler.toml`
- 如需新 KV`wrangler kv:namespace create "NAV_KV"`,将返回的 `id` 填入 `[[kv_namespaces]]``id`
- 修改 `[vars]` 中的 `ADMIN_PASSWORD`,或使用 `wrangler secret put ADMIN_PASSWORD` 设置密钥
3. 部署成功后记下 Worker 地址,例如:
`https://cf-nav-backend.你的子域.workers.dev`
## 二、前端Cloudflare Pages
1. **配置 API 地址**
编辑项目根目录下的 `config.js`,将 `window.API_BASE` 改为你的后端 Worker 地址,例如:
```javascript
window.API_BASE = 'https://cf-nav-backend.你的子域.workers.dev';
```
2. **部署到 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`)打包上传
3. **本地预览**
```bash
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`,即可继续使用同一份数据,无需迁移。