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部署前端
适用场景:
- 开发调试
- 需要修改前端代码
- 前后端独立部署
两种方式对比
| 特性 | 单应用模式 | 前后端分离模式 |
|---|---|---|
| 部署复杂度 | 简单,只需一个服务 | 复杂,需要两个服务 |
| 开发调试 | 不便,需要重新构建 | 方便,支持热更新 |
| 资源占用 | 较少 | 较多 |
| 适用环境 | 生产环境 | 开发环境 |
| 推荐指数 | ⭐⭐⭐⭐⭐ | ⭐⭐⭐ |
推荐方案
综合考虑下来,推荐直接使用以下方式:
- Release 打包执行文件 - 已内置页面静态资源,开箱即用
- Docker 环境变量部署 - 配置简单,一键启动
这两种方式都是单应用模式,只需运行一个服务即可。
常见问题
Q: 为什么访问页面显示404?
A: 检查以下几点:
- 如果是单应用模式,确保
EmbedHtml已注释 - 确保
web/dist目录下有静态资源文件 - 如果没有,执行
cd web && npm run build构建
Q: 开发时如何快速调试?
A:
- 设置
RunMode = debug - 启用
EmbedHtml = disable - 启动后端:
go run main.go - 启动前端:
cd web && npm run dev - 访问前端提示的URL(通常是 http://127.0.0.1:5173)
Q: Docker 部署需要配置 EmbedHtml 吗?
A: 不需要。Docker 镜像已经内置了前端静态资源,默认就是单应用模式。