Files
2026-03-11 20:46:24 +08:00

3.0 KiB
Raw Permalink Blame History

萌芽导航 - 前后端分离版

  • 前端:静态 PWA部署到 Cloudflare Pages
  • 后端API Worker部署到 Cloudflare Workers(目录 cf-nav-backend

一、后端Cloudflare Worker

  1. 进入后端目录并安装依赖、部署:
cd cf-nav-backend
npm install
npm run deploy
  1. 修改 cf-nav-backend/wrangler.toml

    • 如需新 KVwrangler kv:namespace create "NAV_KV",将返回的 id 填入 [[kv_namespaces]]id
    • 修改 [vars] 中的 ADMIN_PASSWORD,或使用 wrangler secret put ADMIN_PASSWORD 设置密钥
  2. 部署成功后记下 Worker 地址,例如:
    https://cf-nav-backend.你的子域.workers.dev

二、前端Cloudflare Pages

  1. 配置 API 地址
    编辑项目根目录下的 config.js,将 window.API_BASE 改为你的后端 Worker 地址,例如:
window.API_BASE = 'https://cf-nav-backend.你的子域.workers.dev';
  1. 部署到 Pages

    • 方式 A - Git 推送

      • 在 Cloudflare Dashboard → Pages → 创建项目 → 连接 Git
      • 构建:(或留空)
      • 输出目录:/(根目录)
      • 部署后前端即可通过你的 *.pages.dev 或自定义域名访问
    • 方式 B - 直接上传

      • Pages → 创建项目 → 直接上传
      • 将当前仓库根目录下所有前端文件(含 config.jsindex.htmlapp.jsadmin.htmladmin.jsstyles.csssw.jsmanifest.webmanifestlogo.pngfavicon.icooffline.html_redirects)打包上传
  2. 本地预览

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,即可继续使用同一份数据,无需迁移。