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.rzrgm.cn/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
浙公網安備 33010602011771號