# EmbedHtml 配置说明 ## 什么是 EmbedHtml? 这个配置可以理解为单应用模式(或者前后端分离)的开关。 ## 配置方式 ### 方式一:单应用模式(推荐) **注释 EmbedHtml 配置** ```ini [server] RunMode = release HttpPort = 8000 ReadTimeout = 60 WriteTimeout = 60 ; 注释EmbedHtml,启用单应用模式 ; EmbedHtml = disable ``` **说明:** - 启动go服务,会把web/dist目录下文件作为前端静态资源 - 如果目录下没有静态资源文件,需要到web目录下,执行 `npm run build` 构建生成 - 只需要运行一个服务即可访问完整功能 - 适合生产环境部署 **适用场景:** - 使用 Release 打包的可执行文件 - Docker 部署 - 生产环境 ### 方式二:前后端分离模式 **启用 EmbedHtml 配置** ```ini [server] RunMode = debug HttpPort = 8000 ReadTimeout = 60 WriteTimeout = 60 ; 取消注释,启用前后端分离 EmbedHtml = disable ``` **说明:** - go服务启动时只会有API服务 - 需要到web目录下,执行 `npm run dev` 启动前端项目 - 访问前端项目提示的端口服务,一般是 `http://127.0.0.1:5173` - 或者使用 `npm run build`,用Nginx部署前端 **适用场景:** - 开发调试 - 需要修改前端代码 - 前后端独立部署 ## 两种方式对比 | 特性 | 单应用模式 | 前后端分离模式 | |------|-----------|--------------| | 部署复杂度 | 简单,只需一个服务 | 复杂,需要两个服务 | | 开发调试 | 不便,需要重新构建 | 方便,支持热更新 | | 资源占用 | 较少 | 较多 | | 适用环境 | 生产环境 | 开发环境 | | 推荐指数 | ⭐⭐⭐⭐⭐ | ⭐⭐⭐ | ## 推荐方案 综合考虑下来,推荐直接使用以下方式: 1. **Release 打包执行文件** - 已内置页面静态资源,开箱即用 2. **Docker 环境变量部署** - 配置简单,一键启动 这两种方式都是单应用模式,只需运行一个服务即可。 ## 常见问题 ### Q: 为什么访问页面显示404? A: 检查以下几点: 1. 如果是单应用模式,确保 `EmbedHtml` 已注释 2. 确保 `web/dist` 目录下有静态资源文件 3. 如果没有,执行 `cd web && npm run build` 构建 ### Q: 开发时如何快速调试? A: 1. 设置 `RunMode = debug` 2. 启用 `EmbedHtml = disable` 3. 启动后端:`go run main.go` 4. 启动前端:`cd web && npm run dev` 5. 访问前端提示的URL(通常是 http://127.0.0.1:5173) ### Q: Docker 部署需要配置 EmbedHtml 吗? A: 不需要。Docker 镜像已经内置了前端静态资源,默认就是单应用模式。