目录结构

XYGo Admin 2025-02-20 222 次阅读

详细了解 server 和 web 的完整目录结构

目录结构

后端目录 server/

复制代码
server/
├── api/                    # API 接口定义
│   ├── admin/              # 后台管理接口(请求/响应结构体 + g.Meta 路由声明)
│   ├── member/             # 会员端接口
│   ├── site/               # 前台公共接口
│   └── system/             # 系统接口(验证码、健康检查)
├── internal/               # 内部模块(不可外部引用)
│   ├── cmd/                # 启动命令(HTTP Server 初始化、路由注册、中间件挂载)
│   ├── controller/         # 控制器层
│   │   ├── admin/          # 后台控制器(20+ 文件)
│   │   ├── member/         # 会员控制器
│   │   ├── site/           # 前台控制器
│   │   └── system/         # 系统控制器
│   ├── logic/              # 业务逻辑层(核心代码)
│   │   ├── admin/          # 管理员管理
│   │   ├── chat/           # 即时聊天
│   │   ├── cmsdoc/         # CMS 文档
│   │   ├── cron/           # 定时任务
│   │   ├── dept/           # 部门管理
│   │   ├── gencodes/       # 代码生成器
│   │   ├── log/            # 日志管理
│   │   ├── member/         # 会员(认证/签到/通知/菜单/分组)
│   │   ├── monitor/        # 系统监控
│   │   ├── notice/         # 通知公告
│   │   ├── post/           # 岗位管理
│   │   ├── sysconfig/      # 系统配置
│   │   ├── user/           # 后台用户/登录
│   │   ├── upload.go       # 文件上传
│   │   └── logic.go        # 统一注册入口
│   ├── service/            # 服务接口层(gf gen service 自动生成)
│   ├── model/              # 数据模型
│   │   ├── entity/         # 数据库实体(gf gen dao 自动生成)
│   │   ├── do/             # 数据操作对象(自动生成)
│   │   └── input/          # 输入/输出结构体
│   │       ├── adminin/    # 后台输入(25 个文件)
│   │       ├── memberin/   # 会员输入
│   │       └── form/       # 通用分页结构
│   ├── dao/                # 数据访问层
│   │   ├── internal/       # 内层 DAO(自动生成,勿修改)
│   │   └── *.go            # 外层 DAO(可扩展自定义方法)
│   ├── middleware/         # 中间件
│   │   ├── auth.go         # 后台 JWT 鉴权
│   │   ├── member_auth.go  # 会员鉴权
│   │   ├── ws_auth.go      # WebSocket 鉴权
│   │   ├── cors.go         # 跨域处理
│   │   ├── response.go     # 统一响应包装
│   │   ├── operation_log.go # 操作日志
│   │   └── performance.go  # 慢接口监控
│   ├── library/            # 基础库
│   │   ├── token/          # JWT 令牌
│   │   ├── cache/          # 缓存
│   │   ├── cron/           # 定时任务调度引擎
│   │   ├── queue/          # 消息队列(Redis/Disk 双驱动)
│   │   ├── monitor/        # 性能监控
│   │   ├── storager/       # 存储驱动(本地/OSS/COS/七牛)
│   │   ├── dbdialect/      # 数据库方言(MySQL/PG 适配)
│   │   └── security/       # 安全(脱敏/登录保护)
│   ├── crons/              # 定时任务注册
│   ├── queues/             # 消息队列消费者注册
│   ├── field/              # 资源注册
│   └── websocket/          # WebSocket 基础设施
├── manifest/
│   └── config/             # 配置文件
├── resource/
│   └── sql/                # SQL 脚本
├── hack/
│   └── config.yaml         # GoFrame CLI 配置
├── go.mod
└── main.go                 # 入口文件

前端目录 web/

复制代码
web/
├── src/
│   ├── api/                # API 请求
│   │   ├── backend/        # 后台 API(auth/system/common/cms)
│   │   └── frontend/       # 前台 API(member/doc)
│   ├── components/         # 公共组件
│   │   ├── core/           # 核心组件
│   │   │   ├── base/       # 基础(Logo)
│   │   │   ├── charts/     # 图表(9 种 ECharts 组件)
│   │   │   ├── forms/      # 表单(16 个组件)
│   │   │   ├── tables/     # 表格(ArtTable/ArtTableHeader)
│   │   │   ├── layouts/    # 布局(20+ 组件)
│   │   │   ├── media/      # 媒体(视频播放/图片裁剪)
│   │   │   └── others/     # 其他(水印/右键菜单)
│   │   └── business/       # 业务组件
│   ├── views/              # 页面视图
│   │   ├── backend/        # 后台页面(12 个模块)
│   │   └── frontend/       # 前台页面(首页/文档/社区/案例/会员)
│   ├── router/             # 路由
│   │   ├── routes/         # 静态路由 + 动态路由
│   │   ├── modules/        # 后台路由模块
│   │   ├── guards/         # 路由守卫
│   │   └── core/           # 路由核心工具
│   ├── store/              # Pinia 状态管理
│   ├── locales/            # 国际化(zh/en)
│   ├── directives/         # 自定义指令(v-auth/v-roles/v-ripple/v-highlight)
│   ├── utils/              # 工具函数
│   │   ├── http/           # Axios 封装
│   │   ├── socket/         # WebSocket 客户端
│   │   ├── storage/        # 本地存储
│   │   └── ...             # 导航/UI/表单/表格/系统
│   ├── types/              # TypeScript 类型定义
│   └── styles/             # 全局样式
├── vite.config.ts          # Vite 配置
├── package.json
└── tsconfig.json