bee new 必须在 gopath/src 下执行,否则因包路径解析失败导致编译错误、路由不生效、模板加载失败;生成的项目必须位于 $gopath/src/myproject,且 bee run 前需 cd 进该项目根目录。

bee new 必须在 GOPATH/src 下执行,否则项目无法编译、路由不生效、模板加载失败——这是 90% 的人第一次跑不起来的根本原因。
为什么不能随便找个目录 bee new
Beego 的 bee 工具仍深度依赖 Go 的传统工作区模型,即使你启用了 go.mod,它内部仍按 GOPATH/src/xxx 路径解析包导入路径。比如你在 /tmp/myapp 下执行 bee new myapp,生成的 main.go 里会写 import "myapp/routers",但 Go 编译器根本找不到这个包,因为没在 GOPATH/src 里。
- 运行
go env GOPATH确认你的 GOPATH(例如/Users/xxx/go) - 必须
cd $GOPATH/src,再执行bee new myproject - 生成的项目路径一定是
$GOPATH/src/myproject,不是当前 shell 路径 - 别试图用
go mod init补救:bee生成的main.go和router.go都硬编码了相对导入路径,改go.mod不解决根本问题
bee new 后要立刻检查的三处关键文件
项目生成只是开始,以下三处不配对,浏览器打开就是 404 或空白页:
-
routers/router.go:必须显式调用beego.Router()或beego.Include(),默认只注册了/;漏写就等于没路由 -
controllers/default.go中的结构体名(如MainController)首字母必须大写,否则 Beego 反射时不可见 -
views/index.tpl里用的字段名,比如{{.title}},必须和c.Data["title"] = "xxx"完全一致,大小写敏感、无空格
bee run 报错 open conf/app.conf: no such file or directory
这不是致命错误,是 Beego 尝试读取配置时的提示信息,只要 conf/app.conf 文件存在且路径正确(它就在项目根目录下的 conf/ 里),就可以忽略。真正要盯住的是:
- 终端第一行是否出现
[SUCC] New application successfully created! - 执行
bee run前是否已cd $GOPATH/src/myproject - 如果报
cannot find package "myproject/controllers",说明你没在GOPATH/src下创建项目,重来
bee run。Beego 不像某些框架能自动向上找 main.go,它严格依赖当前工作目录就是项目根目录——而这个根目录,必须是 GOPATH/src/xxx。











