007. 标准库 embed 包:使用 embed 打包模板和静态文件
提示: 希望我讲某方面的视频,请前往 GX1 新视频话题征集帖 提交建议。
说明#
目前来讲 Go 生态圈有大量的第三方打包工具,以下是几个比较知名的:
- gobuffalo/packr
- markbates/pkger
- rakyll/statik
- knadh/stuffbin
- github.com/go-bindata/go-bindata
- elazarl/go-bindata-assetfs
- GeertJohan/go.rice
他们都做着同样的事情,那就是将静态文件(JS, CSS, 图片)或者模板文件等非 .go 文件打包到一个二进制文件中。
Go 的 build 工具不支持打包静态文件,直到 2021-02-16 发布的 1.16 版本,发布了 embed 标准库。
embed 的发布,也算是 Go 对打包静态文件的内置支持。
这个视频我们就来以 github.com/summerblue/goblog 项目为例,演示如何使用 embed 工具进行打包。