🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
## 概述 `app.conf` 是Revel程序的配置文件,它使用 [goconfig](https://github.com/revel/config) 语法,类似微软的 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** 模式, 你也可以自定义你需要的段。 程序启动时,根据 ([命令行工具](http://gorevel.cn/docs/manual/tool.html))“revel run” 提供的参数来选择运行模式。 ## 自定义属性 开发者可以自定义key,并通过 [`revel.Config` 变量](http://gorevel.cn/docs/docs/godoc/revel.html#variables) 访问它们。这里公开了一些简单的 [api](http://gorevel.cn/docs/docs/godoc/config.html)。 ## 内建属性 ### 应用程序设置 #### app.name 应用程序名称,用于控制台输出和开发web页。 例如: ~~~ app.name = Booking example application ~~~ 默认值: 无值 * * * #### app.secret 密钥用于密码操作 ([`revel.Sign`](http://gorevel.cn/docs/docs/godoc/util.html#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 确定模板渲染时是否使用 [分块编码](http://gorevel.cn/docs/manual/en.wikipedia.org/wiki/Chunked_transfer_encoding)。分块编码可以减少发送到客户端的第一个字节的时间(在整个模板已经完全呈现数据之前)。 默认值: false * * * #### results.pretty 配置 [`RenderXml`](http://gorevel.cn/docs/docs/godoc/controller.html#RenderXml) 和 [`RenderJson`](http://gorevel.cn/docs/docs/godoc/controller.html#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](http://golang.org/pkg/time/#ParseDuration) 解析字符串,默认值是 30 天。也可以设置为会话结束时过期。 请注意,客户端的行为依赖于浏览器的设置,所以结果并不总是保证。 ### 模板 #### template.delimiters 指定模板左右分隔符 必须这样指定分隔符 “左分隔符 右分隔符” 默认值: “{{ }}” ### 格式化 #### format.date 指定默认的日期格式,Revel在两个地方使用它: * 绑定日期参数到 `time.Time` (参考 [binding](http://gorevel.cn/docs/manual/binding.html)) * 在模板中使用 `date` 模板函数输出日期 (参考 [模板函数](http://gorevel.cn/docs/manual/templates.html)) 默认值: “2006-01-02” * * * #### format.datetime 指定默认的日期时间格式,Revel在两个地方使用它: * 绑定日期参数到 `time.Time` (参考 [binding](http://gorevel.cn/docs/manual/binding.html)) * 在模板中使用 `datetime` 模板函数输出日期 (参考 [模板函数](http://gorevel.cn/docs/manual/templates.html)) 默认值: “2006-01-02 15:04” ### 数据库 #### db.import 指定DB模块的 database/sql 驱动程序导入路径。 默认值: ”” * * * #### db.driver 指定 database/sql 驱动程序名称 (在[`sql.Open`](http://golang.org/pkg/database/sql/#Open)中使用). 默认值: ”” * * * #### db.spec 指定 database/sql 数据源名称 (在 [`sql.Open`](http://golang.org/pkg/database/sql/#Open)中使用). 默认值: ”” ### 构建 #### build.tags [Build tags](http://golang.org/cmd/go/#Compile_packages_and_dependencies) 构建程序的时候使用。 默认值: ”” ### 日志 TODO ### 缓存 [cache](http://gorevel.cn/docs/manual/cache.html) 模块是一个简单的堆或分布式缓存接口 #### cache.expires 设置缓存过期时间。在程序中调用者使用常量`cache.DEFAULT`获取。 它是接受一个[`time.ParseDuration`](http://golang.org/pkg/time/#ParseDuration) 字符串。 (目前还不能指定默认值为 `FOREVER`) 默认值: “1h” (1 小时) * * * #### cache.memcached 如果为真, 缓存模块使用 [memcached](http://memcached.org/) 来代替内存缓存。 默认值: false * * * #### cache.hosts 一个逗号分隔的 memcached 主机列表。缓存条目使用确定的主机名缓存key自动分片到可用的主机中。主机可能会多次列出,以增加共享的缓存空间。 默认值: ”” ### 计划任务 [计划任务](http://gorevel.cn/docs/manual/jobs.html) 模块允许你运行计划任务或者临时任务 #### 时间表 时间表可以通过key来配置。 ~~~ cron.schedulename = @hourly ~~~ 时间表的计划时间可以在执行器中提交任务时使用。例如: ~~~ jobs.Schedule("cron.schedulename", job) ~~~ * * * #### jobs.pool 允许同时允许的任务数量。例如: ~~~ jobs.pool = 4 ~~~ 如果为 0, 则没有数量限制 默认值: 10 * * * #### jobs.selfconcurrent 如果为真, 允许一个任务运行,即使是该任务的实例仍在进行中。 默认值: false ### 模块 [模块](http://gorevel.cn/docs/manual/modules.html) 通过指定导入路径将模块添加到应用程序中。例如: ~~~ module.testrunner = github.com/revel/revel/modules/testrunner ~~~ ## 开发计划 * 允许使用命令行参数配置值或以其他方式在命令行中指定值。