Golang
主页 > 脚本 > Golang >

Golang使用embed引入静态文件的代码

2024-06-02 | 佚名 | 点击:

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

指令:/go:embed

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

项目结构

1

2

3

4

5

$ tree

.

├── main.go

└── static

    └── hello.txt

hello.txt 文件内容

1

Hello World!

main.go

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

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

package main

 

import (

    "embed"

    "fmt"

)

 

// 引入静态文件的内容到变量content

//go:embed static/hello.txt

var content string

 

// 注意需要这个语句,虽然没有用到,可以引入整个目录的文件

//go:embed static/*

var tmplFS embed.FS

 

func main() {

    fmt.Println(content)

}

输出

1

Hello World!

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

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

package main

 

import (

    "embed"

    "fmt"

)

 

//go:embed static/*

var tmplFS embed.FS

 

func main() {

    // 读取文件内容

    content, _ := tmplFS.ReadFile("static/hello.txt")

 

    fmt.Println(string(content))

    // Hello World!

}

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

1

2

3

4

5

6

# 编译

$ go build main.go

 

# 拷贝到其他任意目录运行

./main

Hello World!

需要注意:

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

原文链接:
相关文章
最新更新