Loving Go的内置模板库,目前我只是将模板声明为const字符串.通常如何包括更大更复杂的模板文件?理想情况下,我更喜欢它们在二进制文件中以简化部署.
Abd*_*UMI 14
自 Go 1.16 发布以来,2021 年嵌入静态文件变得更加容易。新版本附带了一个新包embed
,它提供了一组方便的接口和方法来在 go 二进制文件中附加静态文件
go version
# 1.16.x
# then
go doc embed
Run Code Online (Sandbox Code Playgroud)
在Go中没有标准的方法可以做到这一点.
正如评论所示,有一些库可以帮助您将二进制数据(如模板,图像等)转换为Go源文件,这些文件可以使用您自己的源文件编译为最终二进制文件.
虽然这种方法适用于许多项目,但我建议您重新考虑.易于分发的成本是您必须在编译主要源代码之前重新生成创建资产的源文件,并且当您想要对模板/ javascript/images进行微小更改时,例如.以这种方式包含,您将不得不重新编译并重新启动整个服务器.
在大多数项目中,我一直致力于改变前端内容,这是迄今为止最常见的一种变化 - 这使我们摆脱了这种做法.