Skip to content

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 镜像已经内置了前端静态资源,默认就是单应用模式。

Released under the MIT License.