Kaynağa Gözat

bugfix:补全index

XieXing 4 ay önce
ebeveyn
işleme
63bc1923a5
2 değiştirilmiş dosya ile 115 ekleme ve 76 silme
  1. 98 63
      README.md
  2. 17 13
      shudao-vue-frontend/index.html

+ 98 - 63
README.md

@@ -1,87 +1,122 @@
-## 部署与上线指南
+# 部署与上线指南
 
-本文记录 shudao-chat 项目前后端在生产环境的标准交付流程,包括 Vue 前端打包、产物合入 Go 服务、Linux 下编译后端以及上传、运行服务的步骤
+本文档详细说明如何在服务器的 `/tmp/tmp` 目录下拉取 `dev` 分支代码,并完成前后端的编译与生产环境部署
 
----
+## 1. 环境准备
+
+确保服务器已安装以下环境:
+- **Git**: 用于拉取代码
+- **Node.js** (≥ 20.19) & **npm**: 用于前端打包
+- **Go** (≥ 1.24): 用于后端编译
 
-### 1. 前端(Vue 3 + Vite)打包
+## 2. 拉取代码
 
-**环境准备**
-- Node.js ≥ 20.19(建议与 `package.json` 中的 engines 保持一致)
-- npm(或 pnpm / yarn,以下以 npm 为例)
-- 在国内网络可替换源:`npm config set registry https://registry.npmmirror.com`
+进入目标目录并拉取远程 `dev` 分支代码:
 
-**打包流程**
 ```bash
-cd /path/to/shudao-chat(前端根目录)
-npm install
-npm run build
-```
+# 1. 创建并进入目录
+mkdir -p /tmp/tmp
+cd /tmp/tmp
 
-执行完成后会在根目录生成 `dist/`,结构类似:
+# 2. 拉取代码
+# 情况A:如果是首次部署(目录为空)
+git clone -b dev http://192.168.0.3:3000/ShuDao-SafeAI/ShuDaoMAIN.git .
+
+# 情况B:如果目录已存在且已有仓库
+# git checkout dev
+# git pull origin dev
 ```
-dist/
-  index.html
-  assets/
-    *.js
-    *.css
-    ...
+
+> **注意**:请根据实际情况替换 git 仓库地址。
+
+## 3. 前端编译 (shudao-vue-frontend)
+
+进入前端目录,安装依赖并打包:
+
+```bash
+# 1. 进入前端目录
+cd shudao-vue-frontend
+
+# 2. 安装依赖
+npm install --registry=https://registry.npmmirror.com
+
+# 3. 执行构建
+npm run build
 ```
 
-### 2. 将前端产物放入 `shudao-chat-go`
-
-1. 备份旧版本(可选):
-   ```bash
-   cd shudao-chat-go
-   mv views/index.html views/index_$(date +%Y%m%d%H%M%S).html
-   mv assets assets_$(date +%Y%m%d%H%M%S)
-   ```
-2. 拷贝新的 `dist` 产物:
-   ```bash
-   # 回到前端根目录
-   cp dist/index.html shudao-chat-go/views/
-   rsync -av --delete dist/assets/ shudao-chat-go/assets/
-   ```
-   - `views/index.html` 会被 `controllers/frontend.go` 用作模版。
-   - `assets/` 目录被 `main.go` 中的 `beego.SetStaticPath("/assets", "assets")` 映射,前端静态资源必须放在这里。
-3. 若有 `dist` 中的其他静态目录(如 `public` 下复制出的 favicon 等),放入 `shudao-chat-go/static/`,Beego 已映射 `/static` 路径。
-
-### 3. 在本地编译 Linux 版后端
-
-**环境要求**
-- Go 1.24+(与 `go.mod` 中声明一致)
-- 已配置好 GOPROXY(如国内:`https://goproxy.cn,direct`)
-
-**编译命令**
+构建完成后,会在 `shudao-vue-frontend/dist` 目录下生成静态资源(包含 `assets` 目录和 `index.html`)。
+
+## 4. 整合产物到后端
+
+将前端生成的静态资源复制到后端对应的目录中:
+
 ```bash
-cd shudao-chat-go
-go mod download
-GOOS=linux GOARCH=amd64 go build -o bin/shudao-chat-go ./main.go
+# 1. 回到项目根目录
+cd ..
+
+# 2. 进入后端目录
+cd shudao-go-backend
+
+# 3. 清理旧资源(可选,建议执行以避免缓存问题)
+rm -rf assets
+rm -f views/index.html
+
+# 4. 复制新资源
+# 复制静态资源目录 assets
+cp -r ../shudao-vue-frontend/dist/assets .
 
-或者安装bee框架:(go env -w GOPROXY=https://goproxy.cn)//如果下面命令安装不成功先执行这条命令
-go install github.com/beego/bee/v2@latest
-然后运行:bee pack -be GOOS=linux
+# 复制入口文件 index.html 到 views 目录
+cp ../shudao-vue-frontend/dist/index.html views/
 ```
 
-输出文件:压缩包:shudao-chat-go.tar.gz
+> **说明**:
+> - `assets/` 目录存放 JS/CSS/图片等静态资源,后端通过 `beego.SetStaticPath("/assets", "assets")` 进行映射。
+> - `views/index.html` 是前端入口页面,后端控制器会渲染此模板。
 
-### 4. 打包并上传到服务器
+## 5. 后端编译与运行 (shudao-go-backend)
+
+编译 Go 后端服务并启动:
 
-**上传方式(示例)**
 ```bash
-压缩包拖入/tmp/tmp
+# 1. 整理依赖
+go mod tidy
+
+# 2. 编译二进制文件
+# GOOS=linux GOARCH=amd64 确保编译为 Linux 可执行文件
+GOOS=linux GOARCH=amd64 go build -o shudao-chat-go main.go
+
+# 3. 赋予执行权限
+chmod +x shudao-chat-go
+
+# 4. 停止旧服务(如果存在)
+# 查找进程ID
+# ps -ef | grep shudao-chat-go
+# 杀掉进程
+# kill -9 <PID>
+
+# 5. 启动新服务 (后台运行)
+nohup ./shudao-chat-go > nohup.out 2>&1 &
+
+# 6. 查看启动日志
+tail -f nohup.out
 ```
 
-### 5. 服务器部署与运行
-- cd /tmp
-- cd tmp
-- tar xvf shudao-chat-go.tar.gz
-- chmod +x shudao-chat-go
-- 找到进程:ps -ef | grep shudao-chat-go
-- 杀死进程:kill -9 1029395   # 将 12345 替换为你找到的实际PID
-- nohup ./shudao-chat-go & tail -f nohup.out #查看实时状态
+## 6. 验证部署
 
+- 检查进程是否存在:
+  ```bash
+  ps -ef | grep shudao-chat-go
+  ```
+- 访问服务地址,确认页面加载正常且 API 调用成功。
 
 ---
 
+### 目录结构说明 (重构后)
 
+- `/shudao-vue-frontend`: Vue 3 前端项目源码
+- `/shudao-go-backend`: Beego 后端项目源码
+  - `/controllers`: 控制器逻辑
+  - `/models`: 数据模型
+  - `/views`: 存放前端入口 HTML 模板
+  - `/assets`: (编译部署时生成) 存放前端静态资源
+  - `/static`: 其他静态文件

+ 17 - 13
shudao-go-backend/views/index.html → shudao-vue-frontend/index.html

@@ -1,15 +1,19 @@
-<!DOCTYPE html>
-<html lang="">
-  <head>
-    <meta charset="UTF-8">
-    <!-- 网站图标 -->
-    <link rel="icon" href="/favicon.ico" sizes="any">
-    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
-    <title>蜀道安全管理AI智能助手</title>
+<!DOCTYPE html>
+<html lang="">
+
+<head>
+    <meta charset="UTF-8">
+    <!-- 网站图标 -->
+    <link rel="icon" href="/favicon.ico" sizes="any">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
+    <title>蜀道安全管理AI智能助手</title>
     <script type="module" crossorigin src="/assets/index-DibjgQGq.js"></script>
     <link rel="stylesheet" crossorigin href="/assets/index-B5i8OKLK.css">
-  </head>
-  <body>
-    <div id="app"></div>

-  </body>
-</html>
+</head>
+
+<body>
+    <div id="app"></div>
+
+</body>
+
+</html>