beego 本身无热重载,依赖 bee cli 监听文件并自动重启;需分别安装匹配的 beego/v2 和 bee/v2,确保项目结构、路径及 bee.json 中 watch_ext 配置正确,且排除编译错误、端口占用与进程残留问题。

Beego 本身不提供热重载能力,热重载靠的是 bee CLI 工具的文件监听 + 自动重启机制——装对工具、配对路径、跑对命令,才能让 bee run 真正生效。
beego 和 bee 必须分开安装,且版本要对齐
很多人卡在“bee run 没反应”或“改了代码不重启”,根本原因是只装了 beego 却漏了 bee,或者用了旧版(如 v1.x)与当前 beego/v2 不兼容。
-
go install github.com/beego/bee/v2@latest—— 安装推荐的 v2 版bee(注意末尾@latest) -
go get github.com/beego/beego/v2—— 对应安装beego/v2,不是github.com/astaxie/beego(那个是已归档的 v1) - 检查是否可用:
bee version应同时显示bee和beego的 v2.x 版本号 - 如果提示
command not found: bee,确认$GOBIN或$GOPATH/bin已加入$PATH
bee run 启动前必须满足三个路径条件
bee run 不是全局任意目录都能用,它依赖项目结构和当前工作路径。错一个,就退回到手动 go run main.go。
- 项目必须在
$GOPATH/src/xxx下(Go Module 项目例外,见下条) - 执行命令时,终端当前路径必须是项目根目录(即含
main.go和routers/router.go的那层) - 如果是 Go Module 项目(有
go.mod),需确保beev2.2+,并在go.mod中声明require github.com/beego/beego/v2 - 启动后看到
[INFO] Using 'build' as default build command和[INFO] Start building...才算真正进入监听状态
默认只监听 .go 文件,改 HTML/CSS 不触发重启?改 watch_ext
bee 默认只监听 .go 文件变更,但开发 Web 时经常改 views/*.html 或 static/css/app.css,这些不会触发重启——得手动改配置。
- 在项目根目录创建或编辑
bee.json - 加入字段:
"watch_ext": [".go", ".html", ".css", ".js"] - 注意:修改
bee.json后需重启bee run才生效 - 不建议加
.log或.tmp类型,可能引发频繁误重启
热重载失败时优先查这三件事
大部分“热重载不动”问题,都集中在构建阶段失败、端口冲突或进程残留,而不是框架本身。
- 看终端最后一行是否是
[SUCC] Restarting...—— 如果是[ERRO]开头,说明编译失败,往上翻找具体错误(比如语法错、import 路径错) - 改完代码后没反应?先
Ctrl+C干掉旧进程,再bee run,避免旧进程占着8080端口 - 修改
conf/app.conf不触发重启 —— 这是设计行为,bee不监听配置文件,需手动重启
真正容易被忽略的是:热重载 ≠ 热补丁。每次变更都会完整重启进程,所有内存状态(如全局变量、未持久化的 session)都会丢失。如果依赖本地内存缓存调试逻辑,得提前想到这点。











