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