Files
2025-11-18 18:42:50 +08:00

99 lines
2.6 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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 镜像已经内置了前端静态资源,默认就是单应用模式。