目录结构
Buffalo new会为我们的项目生成一个最小的目录结构。这个结构相对来说比较简洁和干净。让我们把更多的时间放在我们项目的逻辑实现部分,而不是重复发明轮子。
让我们来看看项目下的目录结构吧。
根目录
下面是一个buffalo项目的目录结构
github.com/username/myapp/
— your app rootactions/
assets/
grifts/
locales/
models/
public/
templates/
tmp/
database.yml
main.go
actions
这个目录就是MVC模式中的Controller。他包含了项目中url所对应的handler。
- app.go文件实现了 app和路由的部分
- render.go文件实现模板引擎相关的工作
assets
这个目录是可选的,如果app只是一个api服务,那么可以删除这个目录。
这个目录主要存放通过编译和压缩过的资产文件。
grifts
这个目录也是可选的,如果项目中用不到task,就可以删除这个目录。
这个目录主要包含了通过grifts实现的所有task。
locales
这个目录也是可选的,如果我们的app只用到一种语言的话,我们可以删除他,同时删除actions目录下app.go中 i18n模块。
这么目录顾名思义就是给 i18n使用的。里面主要各种语言对应的字符串关系映射表。
models
如果建立项目的时候使用了pop/soda,就会自动生成这个目录。
这个目录也是可选的,如果我们的项目中没有用到数据库,那可以删除这个目录。
这个目录就是MVC模式中的Model部分,目录包括了models.go文件和我们项目中用到的模型文件。models.go文件主要就是初始化数据连接。
public
这个目录是自动生成的。
这个目录包含了编译和压缩过的对外服务的静态资产文件。如果使用webpack,webpack也会将资产放到这个目录。
templates
这个目录是可选的,如果我们的app是api服务,那么这个目录也是可以删除的。
这个目录就是MVC模式中的View部分,主要包含了项目中用到的所有模板文件。
tmp
这个目录是自动生成的。
他主要是使用buffalo dev命令行工具时产生的一些临时文件。
database.yml
这个文件是可选的,如果我们的app没有用到数据库,或者orm用的不是pop/soda,也就可以删除了。
具体详细的配置方法见 pop/soda
main.go
我们app的入口文件。