revel new myapp 是唯一可靠创建方式,必须指定合法Go包名应用名、路径无空格中文,且项目须置于 $GOPATH/src/github.com/yourname/myapp;创建后须用 revel run -a github.com/yourname/myapp 启动,不可用 go run。

revel new myapp 是唯一可靠的方式,其他带 -a 或 -r 的写法要么报错,要么静默失效——Revel 当前稳定版(v1.0+)只接受位置参数,不支持交互式创建或参数别名。
revel new 命令必须带应用名且路径不能含空格
命令执行失败最常见的原因是路径非法:
- 应用名必须是合法 Go 包名:仅含小写字母、数字、下划线,且不能以数字开头(
myblog✅,my-blog❌,1app❌) - 当前工作目录路径中不能有空格或中文(
/Users/John Doe/myapp会触发fork/exec ... no such file or directory) - 若目标文件夹已存在,
revel new不覆盖,直接退出并提示directory already exists
项目创建后必须用 revel run 启动,不能 go run
Revel 依赖 import path 解析和 conf/app.conf 中的配置加载机制,go run 无法识别这些上下文:
- 启动命令必须是
revel run -a github.com/yourname/myapp -p 9000,其中-a参数必须是完整 import path,不是.或相对路径 - 项目必须放在
$GOPATH/src/下的合规路径(如$GOPATH/src/github.com/yourname/myapp),否则revel run找不到app.conf和app/目录 - 验证路径是否合规:运行
go list -f '{{.Dir}}' github.com/yourname/myapp,输出应为磁盘绝对路径且末尾含/myapp
浏览器打不开 http://localhost:9000?先查这三处
404 或连接拒绝几乎从不源于代码逻辑,而是环境卡点:
- 执行
revel version确认 CLI 可用;若报command not found,说明没用go install github.com/revel/cmd/revel@latest正确安装 - 检查
conf/app.conf中app.port是否被注释,或误写成字符串(如"9000"),Revel 只接受无引号纯数字 - Mac/Linux 用户遇到
no such file or directory错误,大概率是GOROOT或GOBIN路径含空格,重装 Go 到无空格路径即可
真正麻烦的从来不是命令本身,而是 Revel 在内部调用 go build 生成临时二进制时,对 go env GOPATH 和模块缓存的一致性高度敏感——一次静默失败可能只在终端末尾闪出 exit status 1,没有堆栈,也没有明确提示哪一步崩了。


















