revel新项目需完成五项基础设置:①修改config/app.conf中http.port避免端口冲突;②通过revel_runmode=dev启用开发模式;③配置db.import和db.url初始化数据库;④验证public/目录及layout.html中静态资源路径;⑤生成并设置app.session.secret密钥以保障会话有效。

创建Revel新项目后必须完成基础设置才能正常运行和开发,否则访问页面会报404、模板渲染失败或会话无法持久化。
配置应用监听端口
Revel默认绑定9000端口,若该端口被占用会导致启动失败。打开项目根目录下的config/app.conf文件,在[dev]段落中添加或修改:
http.port = 8080
这一步不可跳过——【不改端口且9000被占时,revel run命令会直接退出并报错】。Mac/Linux用户可用lsof -i :9000快速查占用进程;Windows用户用netstat -ano | findstr :9000确认。
设置运行模式与环境变量
开发阶段需明确启用dev模式,避免生产配置干扰调试:
在终端中进入项目根目录,执行:REVEL_RUNMODE=dev revel run my-app
注意:如果省略REVEL_RUNMODE=dev,Revel可能读取[prod]段配置,导致模板热重载失效、错误页面不显示具体堆栈,极大拖慢开发节奏。
初始化数据库连接(如需)
方法一:启用内置SQLite(零配置)
编辑conf/app.conf,取消注释并修改以下行:
db.import = github.com/revel/revel/database/sqlite
db.url = "file:app.db?cache=shared&mode=rwc"
方法二:连接MySQL/PostgreSQL
先安装对应驱动:go get github.com/go-sql-driver/mysql 或 go get github.com/lib/pq;再在app.conf中配置db.import和db.url,确保URL中包含合法用户名、密码及数据库名。
⚠️ 若项目含models且未配置db,首次调用c.DB.Insert()将panic并中断请求。
验证静态资源路径
第一步:确认public/目录存在且非空,其中至少包含css/bootstrap.css或js/app.js等基础文件。
第二步:检查app/views/layout.html中是否引用了正确路径的资源,例如:<link rel="stylesheet" href="/css/app.css"> → 对应public/css/app.css。
第三步:启动服务后,手动访问http://localhost:8080/css/app.css,返回200且内容可读即通过。
这一步操作起来很简单,直接把文件拖进去就行。但若路径错位,浏览器控制台会报404,页面样式全部丢失,而Revel日志里不会提示任何警告。
启用会话加密密钥
第一步:生成32字节随机密钥(Linux/macOS):openssl rand -hex 32
第二步:将输出结果填入conf/app.conf的app.session.secret字段:
app.session.secret = "a1b2c3d4e5f678901234567890abcdef1234567890abcdef1234567890abcdef"
【缺失此密钥时,SetCookie会失败,所有Session().Put()操作均无效】。即使代码里写了c.Session().Put("user", id),刷新后也拿不到值。











