Revel 配置文件概述
app.conf
是Revel程序的配置文件,它使用 goconfig 语法,类似微软的 INI 文件。
下面是个例子:
app.name=chat
app.secret=pJLzyoiDe17L36mytqC912j81PfTiolHm1veQK6Grn1En3YFdB5lvEHVTwFEaWvj
http.addr=
http.port=9000
[dev]
results.pretty=true
watch=true
log.trace.output = off
log.info.output = stderr
log.warn.output = stderr
log.error.output = stderr
[prod]
results.pretty=false
watch=false
log.trace.output = off
log.info.output = off
log.warn.output = %(app.name)s.log
log.error.output = %(app.name)s.log
每个段是一种 运行模式。最上面的 key (不在任何段内)对所有的运行模式有效。这使得默认值在所有模式中适用,并且根据需要被重写。[prod]
段仅用于 生产
模式。
新建的Revel程序中默认定义了 dev 和 prod 模式, 你也可以自定义你需要的段。 程序启动时,根据 (命令行工具)“revel run” 提供的参数来选择运行模式。
自定义属性
开发者可以自定义key,并通过 revel.Config 变量 访问它们。这里公开了一些简单的 api。
内建属性
应用程序设置
app.name
应用程序名称,用于控制台输出和开发web页。
例如:
app.name = Booking example application
默认值: 无值
app.secret
密钥用于密码操作 (revel.Sign)。Revel 在内部使用它签署session cookies。设置为空将禁用签名。
使用 revel new
新建项目时,它被设置为一个随机的字符串。
例如:
app.secret = pJLzyoiDe17L36mytqC912j81PfTiolHm1veQK6Grn1En3YFdB5lvEHVTwFEaWvj
默认值: 无值
HTTP settings
http.port
监听端口
例如:
http.port = 9000
http.addr
监听ip地址
Linux中, 空字符串代表通配符 – Windows中, 空字符串被转换为 "localhost"
默认值: ””
harness.port
Specifies the port for the application to listen on, when run by the harness. For example, when the harness is running, it will listen on http.port
, run the application on harness.port
, and reverse-proxy requests. Without the harness, the application listens on http.port
directly.
默认情况下,会选择一个随机的空闲端口。这仅仅是必要的,由该程序限制插座访问的环境中运行时设置。By default, a ranDOM free port will be chosen. This is only necessary to set when running in an environment that restricts socket access by the program.
Default: 0
http.ssl
如果为真, Revel Web服务器将自行配置为接受SSL连接。这需要一个 X509 证书和一个 key 文件。
默认值: false
http.sslcert
指定 X509 证书文件的路径
默认值: ””
http.sslkey
指定 X509 证书 key的路径
默认值: ””
响应结果
results.chunked
确定模板渲染时是否使用 分块编码。分块编码可以减少发送到客户端的第一个字节的时间(在整个模板已经完全呈现数据之前)。
默认值: false
results.pretty
配置 RenderXml 和 RenderJson 生成缩进格式的 XML/JSON. 例如:
results.pretty = true
默认值: false
国际化 (i18n)
i18n.default_language
为消息翻译指定默认的语言,如果客户端请求的语言环境未确认。如果不指定,则返回一个虚拟的信息。
例如:
i18n.default_language = en
默认值: ””
i18n.cookie
指定存储用户语言环境的cookie名称
默认值: “%(cookie.prefix)_LANG” (参考 cookie.prefix)
监视
Revel 监视项目改动,并支持几种类型文件的热重载。启用监视:
watch = true
如果为假, 禁用监视, 并忽略其他相关的监视配置 watch.*
(适用于生产环境)
默认值: true
watch.templates
如果为真, Revel 监视模板变化,必要时重新加载他们。
默认值: true
watch.routes
如果为真, Revel 监视 routes
文件的变化,必要时重新加载。
默认值: true
watch.code
如果为真, Revel 监视Go代码改动,必要时重新编译代码(作为反向代理运行)。
app/
目录(包括子目录)下的代码都被监视。
默认值: true
Cookies
Revel 组件默认使用下面的 cookies:
- REVEL_SESSION
- REVEL_LANG
- REVEL_FLASH
- REVEL_ERRORS
cookie.prefix
Revel 使用这个属性作为 Revel-produced cookies前缀。这样可以在同一台主机上运行多个REVEL应用程序。
例如,
cookie.prefix = MY
则对应的 cookie 名称如下:
- MY_SESSION
- MY_LANG
- MY_FLASH
- MY_ERRORS
默认值: “REVEL”
Session
session.expires
Revel 使用这个属性设置session cookie的有效期。 Revel 使用 ParseDuration 解析字符串,默认值是 30 天。也可以设置为会话结束时过期。 请注意,客户端的行为依赖于浏览器的设置,所以结果并不总是保证。
模板
template.delimiters
指定模板左右分隔符
必须这样指定分隔符 “左分隔符 右分隔符”
默认值: “{{ }}”
格式化
format.date
指定默认的日期格式,Revel在两个地方使用它:
- 绑定日期参数到
time.Time
(参考 binding) - 在模板中使用
date
模板函数输出日期 (参考 模板函数)
默认值: “2006-01-02”
format.datetime
指定默认的日期时间格式,Revel在两个地方使用它:
- 绑定日期参数到
time.Time
(参考 binding) - 在模板中使用
datetime
模板函数输出日期 (参考 模板函数)
默认值: “2006-01-02 15:04”
数据库
db.import
指定DB模块的 database/sql 驱动程序导入路径。
默认值: ””
db.driver
指定 database/sql 驱动程序名称 (在sql.Open中使用).
默认值: ””
db.spec
指定 database/sql 数据源名称 (在 sql.Open中使用).
默认值: ””
构建
build.tags
Build tags 构建程序的时候使用。
默认值: ””
日志
TODO
缓存
cache 模块是一个简单的堆或分布式缓存接口
cache.expires
设置缓存过期时间。在程序中调用者使用常量cache.DEFAULT
获取。
它是接受一个time.ParseDuration 字符串。
(目前还不能指定默认值为 FOREVER
)
默认值: “1h” (1 小时)
cache.memcached
如果为真, 缓存模块使用 memcached 来代替内存缓存。
默认值: false
cache.hosts
一个逗号分隔的 memcached 主机列表。缓存条目使用确定的主机名缓存key自动分片到可用的主机中。主机可能会多次列出,以增加共享的缓存空间。
默认值: ””
计划任务
计划任务 模块允许你运行计划任务或者临时任务
时间表
时间表可以通过key来配置。
cron.schedulename = @hourly
时间表的计划时间可以在执行器中提交任务时使用。例如:
jobs.Schedule("cron.schedulename", job)
jobs.pool
允许同时允许的任务数量。例如:
jobs.pool = 4
如果为 0, 则没有数量限制
默认值: 10
jobs.selfconcurrent
如果为真, 允许一个任务运行,即使是该任务的实例仍在进行中。
默认值: false
模块
模块 通过指定导入路径将模块添加到应用程序中。例如:
module.testrunner = github.com/revel/revel/modules/testrunner
开发计划
- 允许使用命令行参数配置值或以其他方式在命令行中指定值。