项目结构

按照go 命令行工具的要求将Revel和Revel应用程序安装到 GOPATH。 (参考 “GOPATH 环境变量” go 命令 文档)

项目结构示例

  1. gocode GOPATH 目录
  2. src GOPATH src 目录
  3. revel Revel 安装目录
  4. ...
  5. sample Revel应用程序根目录
  6. app MVC目录
  7. controllers 控制器
  8. init.go
  9. models 模型
  10. routes
  11. views 模板
  12. tests 测试
  13. conf
  14. app.conf 默认配置
  15. routes 路由定义
  16. messages 国际化
  17. public 静态文件
  18. css CSS files
  19. js Javascript files
  20. images Image files

app

app 存放源代码和模板。

  • app/controllers
  • app/models
  • app/views
    Revel 约定:

  • 模板文件放到 app/views目录

  • 控制器文件放到 app/controllers目录
    此外,Revel监视 app/ 目录,当发现文件变动时,会自动重新编译。app/ 目录以外的依赖关系不会被监视,在必要的时候由开发人员重新执行编译。

Revel在app目录的init()函数开始的时候会导入 app/中的所有依赖包或者 ( 模块)。

controllers/init.go 用于注册拦截器 interceptor。同一个包的源文件中init() 函数的执行无序的, 所以收集所有的拦截器定义到同一个文件中,便于开发者指定拦截器的执行顺序(也可以用于顺序敏感的初始化)。

conf

conf 目录包含了Revel应用程序的配置文件,有两个主要的配置:

  • app.conf, 主配置文件,包含了标准配置参数。
  • routes, 路由定义文件。

messages

messages 目录包含了本地化消息文件。

public

静态资源文件存放到 public 目录,由Web server 直接提供静态文件支持。 通常包含三个标准的子目录 images, CSS 和 JavaScript。

目录的名字可以随意,使用的时候只需要与路由对应起来就好。