go-bindata
是目前程序pugo
在用的嵌入静态资源的工具。它可以把静态文件嵌入到一个go
文件中,并提供一些操作方法。
go-bindata -o=app/asset/asset.go -pkg=asset source/... theme/... doc/source/... doc/theme/...
-o
输出文件到 app/asset/asset.go
,包名 -pkg=asset
,然后是需要打包的目录,三个点包括所有子目录。这样就可以把所有相关文件打包到asset.go
且开头是package asset
保持和目录一致。
示例
step1: 安装 go-bindata
D:\study\myGin> go get -u github.com/jteeuwen/go-bindata/...
step2: 写go文件
package main
import (
"myGin/handler"
)
//go:generate go-bindata -o=assets/tpl_gen.go -pkg=assets tpl/...
//-o 输出文件到assets/tpl_gen.go,包名 -pkg=assets,然后是需要打包的目录,三个点包括所有子目录。这样就可以把所有相关文件打包到 asset.go 且开头是 package asset 保持和目录一致。
func main() {
handler.InitHandlers()
}
step3: 产生文件
D:\study\myGin> go generate
step4: 使用方式
func GetAllStaticFileNames() {
names := assets.AssetNames()
for _, name := range names {
fmt.Println("name=", name)
rBytes, _ := assets.Asset(name)
fmt.Println("rBytes=", rBytes)
}
}
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。