buffalo new 命令生成开箱即用的全栈项目结构,包含 actions(控制器)、models(数据模型)、templates(plush 模板)、assets(前端资源)、config(配置)等目录及 main.go、go.mod 等关键文件。

用 buffalo new 命令初始化项目时,它会自动生成一套开箱即用的全栈结构,覆盖路由、控制器、模型、前端资源、数据库配置和部署脚手架,而不是仅创建空目录或基础 Go 文件。
执行 new 命令并观察生成内容
在终端中运行:buffalo new myapp(myapp 可替换为任意项目名)。
命令执行完成后,当前目录下会出现一个名为 myapp 的新文件夹。
进入该目录:cd myapp,然后运行 ls -F(macOS/Linux)或 dir(Windows),可看到以下核心子目录和文件。
关键目录与作用说明
actions/:存放 HTTP 处理函数(即控制器逻辑),默认包含 app.go(主应用配置)、home.go(首页路由)和 errors.go(错误页面渲染)。所有路由注册都集中在此目录下的 Go 文件中。
models/:定义数据模型和数据库连接。生成时已含 models.go 和 user.go 示例,使用 pop/soda ORM;models.go 中的 NewDB() 函数决定实际连接行为,【database.yml 仅为占位,不被 Buffalo 运行时解析】。
templates/:存放 HTML 模板文件,采用 Plush 模板引擎。默认有 _flash.plush.html(消息提示)、application.plush.html(布局模板)和 home/index.plush.html(首页视图)。
Buffalo框架 1.0.1 版本源码包下载,适合需要错误处理改进、依赖更新、render.Download 注释和 request logger 调整的 v1 项目。
assets/:前端资源目录,含 js/、css/、images/ 子目录;默认集成 webpack + npm 构建流程,packr 工具用于打包静态资源进二进制。
config/:配置相关代码,包括 app.go(应用生命周期钩子与中间件注册)、routes.go(所有路由定义入口)、database.yml(仅作参考,无实际加载逻辑)。
不可忽略的顶层文件
main.go:程序入口,调用 actions.App() 启动服务,不建议直接修改逻辑。
database.yml:仅作为人类可读的配置示意,Buffalo 【不会读取或解析此 YAML 文件】;真实数据库连接由 models.NewDB() 决定,通常依赖环境变量如 DB_URL。
buffalo.dev.yml:开发服务器配置,可调整端口、HTTPS、代理等;修改后需重启 buffalo dev 才生效。
go.mod:已初始化模块,声明了 buffalo、pop、plush 等核心依赖,版本锁定严格,避免构建漂移。
.gitignore:预置了 /node_modules/、/public/assets/、/build/ 等典型忽略项,适配 Buffalo 构建产物路径。










