0%

使用 Embed 嵌入静态资源

go1.16 提供了一个新功能 embed,使用 embed 可以在编译的时候将静态文件资源嵌入到程序中。

在代码中使用 //go:embed 指令可以将文件资源映射为 string[]byteembed.FS 类型。

将一个文件嵌入为 string

1
2
3
4
5
import _ "embed"

//go:embed hello.txt
var s string
print(s)

将一个文件嵌入为 []byte

1
2
3
4
5
import _ "embed"

//go:embed hello.txt
var b []byte
print(string(b))

将一个文件嵌入为 embed.FS

1
2
3
4
5
6
import "embed"

//go:embed hello.txt
var f embed.FS
data, _ := f.ReadFile("hello.txt")
print(string(data))

同时嵌入多个静态资源:

1
2
3
4
import "embed"

//go:embed assets/* templates/*
var f embed.FS