按照go 命令行工具的要求將Revel和Revel應用程序安裝到 GOPATH。 (參考 “GOPATH 環境變量”?[go 命令 文檔](http://golang.org/cmd/go/))
## 項目結構示例
~~~
gocode GOPATH 目錄
src GOPATH src 目錄
revel Revel 安裝目錄
...
sample Revel應用程序根目錄
app MVC目錄
controllers 控制器
init.go
models 模型
routes
views 模板
tests 測試
conf
app.conf 默認配置
routes 路由定義
messages 國際化
public 靜態文件
css CSS files
js Javascript files
images Image files
~~~
## app
`app`?存放源代碼和模板。
* `app/controllers`
* `app/models`
* `app/views`
Revel 約定:
* 模板文件放到?`app/views`目錄
* 控制器文件放到?`app/controllers`目錄
此外,Revel監視?`app/`?目錄,當發現文件變動時,會自動重新編譯。`app/`?目錄以外的依賴關系不會被監視,在必要的時候由開發人員重新執行編譯。
Revel在app目錄的`init()`函數開始的時候會導入?`app/`中的所有依賴包或者 (?[模塊](http://gorevel.cn/docs/manual/modules.html))。
`controllers/init.go`?用于注冊攔截器?[interceptor](http://gorevel.cn/docs/manual/interceptors.html)。同一個包的源文件中`init()`?函數的執行無序的, 所以收集所有的攔截器定義到同一個文件中,便于開發者指定攔截器的執行順序(也可以用于順序敏感的初始化)。
## conf
`conf`?目錄包含了Revel應用程序的配置文件,有兩個主要的配置:
* `app.conf`, 主配置文件,包含了標準配置參數。
* `routes`, 路由定義文件。
## messages
`messages`?目錄包含了本地化消息文件。
## public
靜態資源文件存放到?`public`?目錄,由Web server 直接提供靜態文件支持。 通常包含三個標準的子目錄 images, CSS 和 JavaScript。
目錄的名字可以隨意,使用的時候只需要與路由對應起來就好。