# OPC 培训站(website) > 📍 现位于 `code/training/website/`(业务 Web 前端,原 `code/opc-training/website/`)。课程内容见 `materials/培训计划/`;关联小程序 `code/training/miniprogram/`;**后端为 `code/server-core`**(`/api/*` 由 server-core `dispatcher.py` 统一分发,`/api` 旧培训端点走 `app/training/`,其余走平台应用)。 课程体系 0.1 的对外展示与内部运营站。React + Vite SPA,暗色粒子品牌语言。 ## 运行方式 ```bash npm install npm run dev # 开发:全部 API 走真实后端(.env.development → 本地 server-core) npm run build # 构建 dist(.env.production → https://opc.pinesound.cn) npm run preview # 预览构建产物 node server/start.mjs # 纯静态托管 dist(默认 8091,演示用;API 由真实后端提供) ``` ## API 基址(真实后端,无任何模拟接口) | 环境 | VITE_API_BASE | 说明 | |------|---------------|------| | 开发 | `http://127.0.0.1:8090`(`.env.development`) | 本地 server-core(`uv run uvicorn dispatcher:app --port 8090`) | | 生产 | `https://opc.pinesound.cn`(`.env.production`) | server-core dispatcher 单入口 | - 代码兜底:`src/services/base.js`,未注入 `VITE_API_BASE` 时默认 `https://opc.pinesound.cn`。 - 请求前缀分工(由 server-core `dispatcher.py` 分发): - `/api/*`(events/bookings/tests/ops/survey/policy/plan/upload/park 等旧培训端点)→ `app/training/` - `/auth/*` `/opc/*` `/hall/*` `/admin/*` → 平台应用 `app.main` - **项目内不包含任何 mock / 模拟接口实现**;`server/` 仅剩纯静态托管。 ## 路由与权限 | 路由 | 内容 | 权限 | |------|------|------| | `#/` | 首页营销落地页 | 公开 | | `#/opc-test` | OPC 创业基因测评 | 公开 | | `#/pine` 及 `#/pine/*` | 内部工具(课程体系/结构/课程表/卡片/工具) | 需登录 | **内部工具登录**:访问 `#/pine/*` 时路由守卫触发登录门,走真实后端 `/auth/login`(平台账号体系)。 内部工具**不进公开导航**,仅通过 URL 直达;公开导航只含「首页 / OPC测评」。 ## 目录速览 ``` server/ 纯静态托管服务(无任何模拟 API) src/data/ 内容数据(home/system/structures/schedule/cards/timetable/opcTest/site) src/components/ 原子/分子/组织/模板组件 src/services/ API 服务(统一走 API_BASE → 真实后端) .env.development dev 的 VITE_API_BASE(本地 server-core) .env.production 生产构建的 VITE_API_BASE ```