Revel项目必须用revel run启动,项目须置于$GOPATH/src/github.com/yourname/myapp下,执行revel run -a github.com/yourname/myapp -p 8080并访问localhost:8080;需确保GOPATH已设、revel CLI已安装、app.importPath配置一致且启用dev模式。

确认 Go 环境和 GOPATH 是否就位
Revel 是 Go 框架,不装 Go 就没法启动。别跳过这步——go version 必须能输出版本(如 go1.21.0),且 GOPATH 环境变量必须明确指向一个真实存在的目录(比如 D:\gopath 或 ~/go)。Windows 用户尤其注意:Path 中要包含 %GOROOT%\bin 和 %GOPATH%\bin,否则后续命令会报“command not found”。
常见错误现象:revel version 找不到命令,或 go get 报 cannot find package ——基本都是 GOPATH 没生效或路径里有空格/中文。
-
go env GOPATH输出应为非空、可写的绝对路径 - 检查
$GOPATH/src目录是否存在,且你有写入权限 - 不要把项目放在桌面、文档等系统受控路径下;Revel 会拒绝读取
C:\Users\XXX\Documents\myapp这类路径
安装 revel CLI 工具而不是只拉源码
很多人卡在 go get github.com/revel/revel,以为这就装好了——其实这只是下载框架库,不是命令行工具。真正要用 revel new 或 revel run,必须安装 github.com/revel/cmd/revel。
执行这条命令(Go 1.16+ 推荐用 @latest):
go install github.com/revel/cmd/revel@latest
安装完后验证:
revel version
如果报错,说明 $GOPATH/bin 没进 PATH;Linux/macOS 用户检查 shell 配置(~/.bashrc 或 ~/.zshrc),Windows 用户重开命令行再试。
⚠️ 注意:旧教程里用 go get github.com/robfig/revel/revel 已失效,该仓库已归档;当前官方维护的是 github.com/revel/cmd/revel。
创建项目必须放在 $GOPATH/src 下的合法 import path 路径中
Revel 不接受任意路径。运行 revel new myapp 后,它会试图把项目建在 $GOPATH/src/myapp ——但这是错的,会导致后续 revel run 找不到 conf/app.conf。
正确做法是:指定完整 import path,例如:
revel new github.com/yourname/myapp
这会让 Revel 自动创建 $GOPATH/src/github.com/yourname/myapp,并生成标准结构(app/、conf/、public/ 等)。
验证是否成功:
- 进入该目录,执行
go list -f '{{.Dir}}' github.com/yourname/myapp,输出应为磁盘上的完整路径 - 目录下必须有
conf/app.conf,且其中app.importPath = "github.com/yourname/myapp"与你传给revel new的参数一致 - 别手动移动项目;改了路径就得同步改
app.conf里的app.importPath,否则revel run启动即 panic
启动服务前必须改端口、设运行模式
直接 revel run github.com/yourname/myapp 很可能失败——默认端口 9000 常被占用,而且没显式指定模式时 Revel 可能读 [prod] 段配置,导致热重载失效、错误堆栈不显示。
推荐启动命令(开发阶段):
REVEL_RUNMODE=dev revel run -a github.com/yourname/myapp -p 8080
解释关键参数:
-
-a是 import path,不是相对路径,不能写成./或. -
-p 8080避开常见冲突端口;Mac/Linux 上可用lsof -i :8080查占用,Windows 用netstat -ano | findstr :8080 -
REVEL_RUNMODE=dev强制启用开发模式,模板修改自动重载,错误页面带完整堆栈
浏览器打开 http://localhost:8080,看到 “It works!” 才算真正跑通。如果只看到 404 或空白页,先检查 public/css/app.css 能否直连访问(http://localhost:8080/css/app.css),404 说明静态资源路径没对上——这是新手最常忽略却最难定位的问题。


















