Files
TermiNexus b3b899663a docs: 新增 README(项目说明与三仓互链)
补充技术栈、目录结构、开发(含 Django 代理前缀)与 deploy.ps1 部署要点,并互链 ViperWebSite / VenomWebSite。
2026-09-28 17:35:36 +08:00

73 lines
3.3 KiB
Markdown
Raw Permalink 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.
# GVSite
GVSDS 工作室官网([www.gvsds.com](https://www.gvsds.com))前端源码,同时承载 `invite` 子域页面。
后端由 Django 站点提供(API、鉴权、成员/项目数据),本仓库只含前端。
## 技术栈
- Vue 3(`<script setup>` + TypeScript)
- Vite 8(rolldown)
- Vue Router 5(`createWebHistory`,干净 URL)
- Pinia(站点状态)
- Tailwind CSS v4(`@tailwindcss/vite`)+ Element Plus
- axios(API)、marked(文档渲染)
- [Lenis](https://github.com/darkroomengineering/lenis) 全局平滑惯性滚动
- Font Awesome(图标)、`@element-plus/icons-vue`
## 目录结构
```
src/
├─ App.vue 根组件
├─ main.ts 入口
├─ router/index.ts 路由表(www + invite 子域)
├─ layouts/SiteLayout.vue 站点骨架:顶栏 + 超级菜单 + 页脚
├─ components/ CookieBanner / GerpUserDropdown / MegaMenu* / SiteFooter
├─ data/megaMenus.ts 超级菜单数据(栏目 → 子项)
├─ api/community.ts 社区接口
├─ stores/site.ts 站点状态
├─ assets/ 全局样式(main.css / gvsds-page.css / community.css / cookie.css)
└─ views/ 页面
├─ HomeView / AboutView / ContactView / SupportView / GalleryView / MembersView
├─ DocumentView / DocReaderView / IntegrityReportView / UserCardView / UnauthorizedView
├─ community/ 社区首页 / 帖子 / 发帖
├─ invite/ 邀请子域:首页 / 申请 / 面试 / 招聘
├─ members/ 成员卡:TermiNexus / YuanZe / BSmooth
├─ methodology/ 方法论:协同编码
├─ plan/ 计划:N.R.C. 10 年计划 / We Are The Future 计划
├─ project/ 项目
└─ errors/ 403 / 404 / 500 / 503
deploy.ps1 构建 + 部署脚本(见下)
```
## 开发
```powershell
npm install
npm run dev # http://localhost:5174(监听 0.0.0.0)
```
开发服务器把后端请求代理到本地 Django `http://127.0.0.1:8000`,代理前缀:`/api`、`/API`、`/Auth`、`/Query`、`/Modify`、`/assets`、`/Invite`、`/Members`、`/ProJect`。
**只起前端不起后端**:页面能打开,但依赖接口的部分(社区、成员、登录态)会失败。
## 构建与部署
```powershell
npm run build # vue-tsc -b 类型检查 + vite build → dist/
.\deploy.ps1 # 备份原站文件 → 全量编译 → 同步产物到 TempLate
```
要点:
- `vite.config.ts` 设置 `assetsDir: 'GVSite'`,产物收敛到 `dist/GVSite/`,页面内以 `GVSite/...` 相对路径引用;部署时同步到 `../TempLate/GVSite/`
- `deploy.ps1` 会先把「已被 Vue 页面替换的 TempLate 原始文件」备份到 `backup/www`,再清理旧产物目录、编译、同步
- 部署前**先提交源码**,避免产物领先于源码
> `deploy.ps1` 带 UTF-8 BOM:Windows PowerShell 5.1 会用 ANSI 代码页解析无 BOM 的 UTF-8 脚本,中文提示会乱码甚至解析失败。
## 相关仓库
- [ViperWebSite](https://git.gvsds.com/GVSDS/ViperWebSite) — Viper 语言官网(viper.gvsds.com)
- [VenomWebSite](https://git.gvsds.com/GVSDS/VenomWebSite) — Venom 包管理器官网(venom.gvsds.com)