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

3.3 KiB
Raw Blame History

GVSite

GVSDS 工作室官网(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 全局平滑惯性滚动
  • 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                 构建 + 部署脚本(见下)

开发

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。 只起前端不起后端:页面能打开,但依赖接口的部分(社区、成员、登录态)会失败。

构建与部署

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 — Viper 语言官网(viper.gvsds.com)
  • VenomWebSite — Venom 包管理器官网(venom.gvsds.com)