• app.conf
    • 概述
    • 自定义属性
    • 内建属性
      • 应用程序设置
        • app.name
        • app.secret
      • HTTP settings
        • http.port
        • http.addr
        • harness.port
        • http.ssl
        • http.sslcert
        • http.sslkey
      • 响应结果
        • results.chunked
        • results.pretty
      • 国际化 (i18n)
        • i18n.default_language
        • i18n.cookie
      • 监视
        • watch.templates
        • watch.routes
        • watch.code
      • Cookies
        • cookie.prefix
      • Session
        • session.expires
      • 模板
        • template.delimiters
      • 格式化
        • format.date
        • format.datetime
      • 数据库
        • db.import
        • db.driver
        • db.spec
      • 构建
        • build.tags
      • 日志
      • 缓存
        • cache.expires
        • cache.memcached
        • cache.hosts
      • 计划任务
        • 时间表
        • jobs.pool
        • jobs.selfconcurrent
      • 模块
    • 开发计划

    app.conf

    概述

    app.conf 是Revel程序的配置文件,它使用 goconfig 语法,类似微软的 INI 文件。

    下面是个例子:

    1. app.name=chat
    2. app.secret=pJLzyoiDe17L36mytqC912j81PfTiolHm1veQK6Grn1En3YFdB5lvEHVTwFEaWvj
    3. http.addr=
    4. http.port=9000
    5. [dev]
    6. results.pretty=true
    7. watch=true
    8. log.trace.output = off
    9. log.info.output = stderr
    10. log.warn.output = stderr
    11. log.error.output = stderr
    12. [prod]
    13. results.pretty=false
    14. watch=false
    15. log.trace.output = off
    16. log.info.output = off
    17. log.warn.output = %(app.name)s.log
    18. log.error.output = %(app.name)s.log

    每个段是一种 运行模式。最上面的 key (不在任何段内)对所有的运行模式有效。这使得默认值在所有模式中适用,并且根据需要被重写。[prod] 段仅用于 生产 模式。

    新建的Revel程序中默认定义了 devprod 模式, 你也可以自定义你需要的段。 程序启动时,根据 (命令行工具)“revel run” 提供的参数来选择运行模式。

    自定义属性

    开发者可以自定义key,并通过 revel.Config 变量 访问它们。这里公开了一些简单的 api。

    内建属性

    应用程序设置

    app.name

    应用程序名称,用于控制台输出和开发web页。

    例如:

    1. app.name = Booking example application

    默认值: 无值


    app.secret

    密钥用于密码操作 (revel.Sign)。Revel 在内部使用它签署session cookies。设置为空将禁用签名。

    使用 revel new新建项目时,它被设置为一个随机的字符串。

    例如:

    1. app.secret = pJLzyoiDe17L36mytqC912j81PfTiolHm1veQK6Grn1En3YFdB5lvEHVTwFEaWvj

    默认值: 无值

    HTTP settings

    http.port

    监听端口

    例如:

    1. 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

    配置 RenderXmlRenderJson 生成缩进格式的 XML/JSON. 例如:

    1. results.pretty = true

    默认值: false

    国际化 (i18n)

    i18n.default_language

    为消息翻译指定默认​​的语言,如果客户端请求的语言环境未确认。如果不指定,则返回一个虚拟的信息。

    例如:

    1. i18n.default_language = en

    默认值: ””


    指定存储用户语言环境的cookie名称

    默认值: “%(cookie.prefix)_LANG” (参考 cookie.prefix)

    监视

    Revel 监视项目改动,并支持几种类型文件的热重载。启用监视:

    1. 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

    Revel 使用这个属性作为 Revel-produced cookies前缀。这样可以在同一台主机上运行多个REVEL应用程序。

    例如,

    1. 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来配置。

    1. cron.schedulename = @hourly

    时间表的计划时间可以在执行器中提交任务时使用。例如:

    1. jobs.Schedule("cron.schedulename", job)

    jobs.pool

    允许同时允许的任务数量。例如:

    1. jobs.pool = 4

    如果为 0, 则没有数量限制

    默认值: 10


    jobs.selfconcurrent

    如果为真, 允许一个任务运行,即使是该任务的实例仍在进行中。

    默认值: false

    模块

    模块 通过指定导入路径将模块添加到应用程序中。例如:

    1. module.testrunner = github.com/revel/revel/modules/testrunner

    开发计划

    • 允许使用命令行参数配置值或以其他方式在命令行中指定值。