Go Revel - app.conf
##概览
`app.conf`为应用程序的配置文件,它使用`goconfig`的语法,与windows的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
每一个段落都是一个运行模式,在最顶层不属于任何一个段落的字段,应用于所有运行模式。`[prod]`段落下的字段应用于生产模式。这样允许为所有的运行模式提供默认值,然后根据需要覆盖。
通过给`revel run`参数可以给指定应用程序相应的运行模式。
##自定义属性
开发者可以通过`revel.Config`变量访问自定义属性,它暴露了简单的api。
##内建属性
**应用程序设置**
- app.name
人类可读的应用程序名称。通常用于一些控制台输出和开发的网页。示例:
app.name = Booking example application
默认值:空
- app.secret
密钥用于加密操作(revel.Sign)。revel通常用它进行会话cookie的签名。通过设置空字符串来禁用签名功能。
初始化一个新的项目时,它被设置为一个随机的字符串(如使用`revel new`创建项目时)。示例:
app.secret = pJLzyoiDe17L36mytqC912j81PfTiolHm1veQK6Grn1En3YFdB5lvEHVTwFEaWvj
默认值:空
**HTTP设置**
- http.port
监听的端口。示例:
http.port = 9000
- http.addr
用于监听的IP地址。在linux上,空的字符串表示通配符- 在windows上,空的字符串会被转为"localhost"
默认值:””
- harness.port
当被harness前置运行时,用于指定应用程序的监听端口。例如, 当harness运行时, 它会在http.port端口监听, 然后在harness.port端口运行程序, 然后对请求进行反向代理。 如果没有harness, 应用程序则直接监听http.port.
默认情况下,会选择一个随机的端口。这仅仅用于当运行在环境限制使用套接字访问程序时。
默认:0
- http.ssl
如果为true, revel会配置自己允许接受SSL请求, 这需要X509证书和密钥文件。
默认值:false
- http.sslcert
指定X509证书文件的路径
默认值: ””
- http.sslkey
指定X509证书密钥
默认值: ””
**Results**
- results.chunked
判断是否使用chunked编码来渲染模板。chunked编码可以在模板被完全渲染之前向客户端发送首个字节用以缩短时间。
默认值:false
- results.pretty
配置`RenderXml`与`RenderJson`产生缩进的`XML/JSON`。示例:
results.pretty = true
默认值:false
**国际化 (i18n)**
- i18n.default_language
当请求的local不被接受时,使用的默认语言。如果未指定,则向请求返回虚拟的消息。示例:
i18n.default_language = en
默认值:””
- i18n.cookie
存储用于指定用户local设置的cookie名。
默认值:“%(cookie.prefix)_LANG” (see cookie.prefix)
**观察器**
revel观察整个项目,并且支持多种类型来源的热重载。开启观察器:
watch = true
如果是false, 什么都不会被观察,并忽略其他`watch.*`配置属性. (这可以适当的用于生产部署)
默认值:true
- watch.templates
如果是true, revel会观察试图的变化并在必要的时候重载它们
默认值:true
- watch.routes
如果为true, revel会观察路由文件的变化并在必要的时候重载它
默认值:true
- watch.code
如果为true, revel会观察Go源码的变化并在必要时重新编译应用程序。(这需要运行harness作为应用程序的前置)
应用程序的`app/`目录的源码都会被观察。(或者任何子目录下的源码)
默认值:true
**Cookies**
revel组建默认使用下列cookies:
REVEL_SESSION
REVEL_LANG
REVEL_FLASH
REVEL_ERRORS
- cookie.prefix
revel在cookie名字中使用的前缀. 这是为了让多个revel程序存在一个域上。示例:
cookie.prefix = MY
这样将会导致以下cookie名:
MY_SESSION
MY_LANG
MY_FLASH
MY_ERRORS
默认值:“REVEL”
**格式化**
- format.date
指定默认情况下日期的格式化字符串. revel将在两个地方使用它:
绑定日期参数至`time.Time`类型
使用模板函数`date`输出日期
默认值:“2006-01-02”
- format.datetime
指定默认情况下时间的格式化字符串. revel将在两个地方使用它:
绑定日期参数至`time.Time`类型
使用模板函数`date`输出日期
默认值:“2006-01-02 15:04”
**数据库**
- db.import
指定需要导入的`database/sql`驱动模块的路径
默认值:””
- db.driver
指定`database/sql`接口类型驱动的名称(用于`sql.Open`)
默认值:””
- db.spec
指定`database/sql`接口类型驱动的数据库名(用于`sql.Open`)
默认值:””
**构建**
- build.tags
构建程序是所指定的构建标签
默认值:””
**Logging**
TODO (移步: http://www.cnblogs.com/hangxin1940/p/3270581.html)
**Cache**
缓存模块接口。
- cache.expires
设置缓存数据的过期时间。用于调用者传递`cache.DEFAULT`常量。
这个字符串必须能被`time.ParseDuration`所接受。
(目前它不能指定为FOREVER)
默认值:“1h” (1小时)
- cache.memcached
如果是true, 将使用memcached作为内存型缓存。
默认值:false
- cache.hosts
一个用逗号分隔的memcached地址列表。缓存内容会动态的存储。可以多次重复地址以提高它的分配比重。
默认值:””
**计划任务**
jobs模块可以用来执行计划任务或者临时任务。
- 具名计划任务
命名的cron计划任务可以如下方式设置名称:
cron.schedulename = @hourly
该计划任务可以在被引用后提交给任务执行器。示例:
jobs.Schedule("cron.schedulename", job)
- jobs.pool
允许任务同时运行的数量. 示例:
jobs.pool = 4
如果是0, 则没有限制.
默认值:10
- jobs.selfconcurrent
如果是true, 允许同一个任务在之前没有执行完的情况下,再次运行。
默认值:false
**模块**
modul允许通过它们的导入路径来给应用程序添加一个模块。示例:
module.testrunner = github.com/robfig/revel/modules/testrunner
Go Revel - app.conf的更多相关文章
- Go语言实战 - revel框架教程之MongDB的最佳搭档revmgo
由于revel框架本身对于model层的编写没有提供任何指导,所以在设计这部分的时候就有些犹豫,反复斟酌到底怎样才算是最佳实践. 我在做山坡网的时候刚开始也纠结了一下,拿不准mongodb的sessi ...
- Go语言实战 - revel框架教程之用户注册
用户注册.登录和注销是任何一个网站都必然会有的功能,可以说,这是重新造轮子做多的领域,每个做网站的人应该都做过很多遍.见微知著,从这么一个小功能其实就可以看到所使用的web框架中的大部分东西. 今天就 ...
- revel + swagger 文档也能互动啦
beego 从 1.3 后开始支持自动化API文档,不过,目测比较复杂,一直期望 revel 能有官方支持. revel 确实已经有了官方支持的计划,有可能将在 0.14 版本支持,现在才 0.11. ...
- Go Revel - Logging(日志)
revel提供了4种日志记录器: 1.`TRACE` - 调试信息 2.`INFO` - 信息 3.`WARN` - 一些无害的异常信息 4.`ERROR` - 必须要关注的错误 日志记录器可以在`a ...
- Go Revel - Jobs(任务调度模块)
revel提供了一个框架用于脱离请求流程的执行异步任务,一般用来执行经常运行的任务.更新缓存数据或发送邮件等. ##启用 该框架作为一个可选的revel模块,默认并不启用.需要更改应用配置来启用它: ...
- Go Revel - Testing(测试模块)
revel提供了一个测试框架来方便的为自己的程序编写功能测试用例. 默认创建的应用骨架附带一个简单的测试用例,这里将它作为起点 ##概览 测试保存在`tests`目录: corp/myapp app/ ...
- Go Revel - Modules(模块)
revel中的模块是一个可以插入到应用中的包, 它允许从第三方引入至应用,并在它和应用之间共享控制器.视图与资源等数据. 一个模块应当具有和revel应用相同的结构."主"程序会以 ...
- Go Revel - Cache(缓存)
revel在服务器端提供了`cache`库用以低延迟的存储临时数据.它缓存那些需要经常访问数据库但是变化不频繁的数据,也可以实现用户会话的存储. ##有效期 一下三种方法为缓存元素设置过期时间: 1. ...
- Go Revel - i18n(国际化)
##Messages `Messages`信息是对内容提供翻译的外部文本片段.revel提供了组织每一种语言文本片段的message文件.自动区域查找.基于cookie覆盖的消息嵌套和参数. 术语表: ...
随机推荐
- 移动端、PC端(前后台)、小程序常用的UI框架
1.移动端UI库 ①.Vant UI 官方地址:https://youzan.github.io/vant/#/zh-CN/intro github地址:https://github.com/youz ...
- go语言学习-基础知识
go程序的基本结构 一个可以最简单的可运行的go程序需要满足下面两个条件: 有一个main()函数 main()函数在main包中 例如: 在go语言中的 hello world 程序如下: // m ...
- 关于文档模式、DCOTYPE声明及严格模式
1.文档模式 文档模式的概念是由IE5.5引入,通过使用文档类型(DOCTYPE)切换实现的.不同的文档模式主要影响CSS内容的呈现,尤其是浏览器对盒模型的解析,但在某些情况下也会影响到JavaScr ...
- windows系统,添加网络位置向导。
韩梦飞沙 韩亚飞 313134555@qq.com yue31313 han_meng_fei_sha ============ 创建一个文件夹 共享. 共享位置 ,文件夹 图标 修改. 分组 ...
- saltstack 命令2
在Salt主机上,可以快速查看所有Salt minion连接,并查看连接是否被接受,拒绝或挂起 [root@node1 ~]# salt-key -L 接受所有的key [root@node1 ~]# ...
- CentOS 7 下 RabbitMQ 集群搭建
环境 10.0.0.20 node1 10.0.0.21 node2 10.0.0.22 node3 搭建(在所有节点执行) 添加EPEL源 [root@node1 ~]# rpm -Uvh http ...
- vscode调试C/C++时支持查看定义查看引用
貌似老版支持现在不支持了,需要自己加第三方工具,方法如下: 确保你安装了c/c++,此文写作时版本为0.20.1 从GTAGS官网下载Win32程序,解压,将其放在合适的位置,并把其目录下/bin文件 ...
- iOS Application Extension
链接: iOS App Extension入门 iOS10通知及通知拓展Extension使用详解(附Demo) iOS10 通知extension之 Content Extension
- 第二章 flex处理二义性
大多数flex程序有二义性,相同的输入可能被多种模式匹配 flex通过下面2个规则来解决 匹配尽可能长的字符 如果2个模式都可以匹配, 匹配更早出现的那个模式 例子 "+" { r ...
- Java全栈程序员之04:Ubuntu下安装MySQL、注册服务及Navcat
在安装MySQL之前,我们先来介绍一下Ubuntu下软件的安装方式.首先回顾下,我们安装JDK,使用的是后缀名为tar.gz的安装包.安装idea,使用的是tar.gz:那有没有别的安装方式呢? 1. ...