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)
}
}
参考资料
Go 内嵌动态资源 go-bindata 的装置及应用