Go 語言 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