go-bindata:go 语言的静态资源嵌入

[golang]Go内嵌静态资源go-bindata的安装及使用_浩秦的博客-CSDN博客

作用

帮助信息 go-bindata --help

样例

go-bindata -o=bindata/bindata.go -ignore="\\\\.DS_Store|desktop.ini|README.md" -pkg=bindata -prefix=assets assets/...
// Code generated by go-bindata. DO NOT EDIT. @generated
// sources:
// assets/web.toml
// ...
// 被转换的文件清单...
package bindata
import (/*...*/)
// 私有结构体、函数定义
// ...
// 数据以私有 []byte 的方式保存
// ...
// 篇幅关系,只展示公共 API
// Asset 根据文件名读取文件内容的 []byte,出错返回 error
func Asset(name string) ([]byte, error) {/*...*/}
// MustAsset 跟 Asset 的区别只在于出错不返回 error ,直接 panic
func MustAsset(name string) []byte {/*...*/}
// AssetInfo 根据文件名返回文件信息
func AssetInfo(name string) (os.FileInfo, error) {/*...*/}
// AssetNames 返回所有文件名
func AssetNames() []string {/*...*/}
// AssetDir 返回指定目录下的所有文件,可以近似看作 ls / dir 命令
// 参数从根目录算起,空串 "" 当作根目录
func AssetDir(name string) ([]string, error) {/*...*/}
// RestoreAsset 将 name 指定的文件,恢复到 dir 指定的位置上
func RestoreAsset(dir, name string) error {/*...*/}
// RestoreAssets 是递归版的 RestoreAsset,如果 name 是目录,会递归执行下去
func RestoreAssets(dir, name string) error {/*...*/}

除此以外,再了解一下 -debug 和 -dev 参数,就基本够用了,更多参数完全可以看着帮助信息自己试。

加了这两个参数(的其中一个),转换时不会真的把资源放进生成的源码,还是去原来的文件读,只是做了一层 API 封装。这样有利于开发和资源设计并行。