您的位置:首页 > 游戏 > 手游 > Golang:使用embed引入静态文件

Golang:使用embed引入静态文件

2024/12/23 11:36:30 来源:https://blog.csdn.net/mouday/article/details/139345593  浏览:    关键词:Golang:使用embed引入静态文件

Go 语言从 1.16 版本开始引入了一个新的标准库 embed,可以在二进制文件中引入静态文件

指令:/go:embed

通过一个简单的小实例,来演示将静态文件引入到golang的二进制打包产物中

项目结构

$ tree
.
├── main.go
└── static└── hello.txt

hello.txt 文件内容

Hello World!

main.go

1、引入静态文件的内容到变量

package mainimport ("embed""fmt"
)// 引入静态文件的内容到变量content
//go:embed static/hello.txt
var content string// 注意需要这个语句,虽然没有用到,可以引入整个目录的文件
//go:embed static/*
var tmplFS embed.FSfunc main() {fmt.Println(content)
}

输出

Hello World!

2、引入整个目录内所有文件

package mainimport ("embed""fmt"
)//go:embed static/*
var tmplFS embed.FSfunc main() {// 读取文件内容content, _ := tmplFS.ReadFile("static/hello.txt")fmt.Println(string(content))// Hello World!
}

将打包产物拷贝到其他任意目录运行,也可以读取到静态文件内容

# 编译
$ go build main.go# 拷贝到其他任意目录运行
./main
Hello World!

需要注意:

  1. 要引入包embed
  2. //go:embed 是一个整体,双斜杆后面不能有空格,例如:// go:embed是无效的

扩展:前后端分离的项目中,可以通过该方式,将前端的打包产物内嵌到golang的二进制打包产物中,一起发布

参考

  • Go实验室:每周一更|利用embed引入静态文件

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com