revel通过app.conf的run.mode区分dev/prod环境并加载对应配置区块,必须严格设为dev或prod;支持-r参数动态覆盖;验证需访问/@routes查看运行模式。

Revel框架通过配置文件实现开发与生产环境的无缝切换,避免手动修改代码或硬编码参数带来的风险。你需要在app.conf中正确设置run.mode、http.port、database.url等关键项,并确保不同环境的配置互不干扰。
确认当前运行模式
Revel默认读取conf/app.conf中的run.mode值来决定加载哪一组配置。该值必须为dev或prod,否则应用启动失败。
打开conf/app.conf,检查首行是否明确声明:
run.mode = dev
若未设置或值为空、拼写错误(如development)、大小写不符(如DEV),Revel将无法识别运行模式,直接报错退出。
配置dev与prod双环境参数
Revel支持按环境区块分组配置,语法为[dev]、[prod]。同一参数可在不同区块中赋予不同值,Revel仅加载当前run.mode对应区块的内容。
方法一:基础环境隔离配置
在conf/app.conf末尾添加以下内容:
[dev]
http.port = 9000
db.url = sqlite3://./dev.db
log.level = DEBUG
[prod]
http.port = 8080
db.url = postgres://user:pass@db:5432/prod?sslmode=disable
log.level = INFO
注意:【每个环境区块必须顶格书写,前面不能有空格或制表符】,否则Revel解析失败,静默跳过该区块。
动态覆盖环境配置
当需要临时切换环境而不修改app.conf时,可通过命令行传入-r参数强制指定运行模式。
第一步:确保run.mode在app.conf中设为占位值或注释掉
第二步:执行命令启动应用
revel run myapp -r prod
第三步:Revel会忽略app.conf中的run.mode,直接加载[prod]区块配置并启动
这一步操作起来很简单,直接把-r参数加在revel run命令末尾即可生效。
验证配置是否生效
启动应用后,访问/@routes(仅dev模式启用)查看当前加载的完整配置快照。
在浏览器中打开http://localhost:9000/@routes,页面顶部显示Run Mode: dev即表示dev配置已激活。
若启动时指定了-r prod但页面仍显示dev,说明run.mode = dev在app.conf中被硬编码且未被-r参数覆盖——此时需检查app.conf中是否存在未注释的run.mode赋值行。











