go:embed 打包静态文件
介绍
一般使用 go 打包时,如果是固定的文件,那么放在一起是很方便的
使用 go:embed 将会简化代码,使得静态文件一起打包
仅限 go 版本 >= 1.16
目录

代码
一共分为三种方式
- 读取文件结果到:string
- 读取文件结果到:[]byte
- 读取文件夹
package mainimport ("embed""log"// _ "embed" // 注意:如果是没有使用到,必须这样导入,否则无法正常使用"fmt""time"
)//go:embed static/demo.js
var jsContent string//go:embed static/demo.js
var jsContent2 []byte//go:embed static
var jsDir embed.FSfunc main() {fmt.Println(jsContent)fmt.Println(jsContent2)jsContent3, err := jsDir.ReadFile("static/demo.js")if err != nil {log.Fatalln(err)}fmt.Println(jsContent3)time.Sleep(5 * time.Second)
}
注意
- 必须是 //go:embed,中间没有空格,否则为注释了
- //go:embed 不能在函数中使用
- 不需要再写读取方法,直接获取值即可
- 如果不涉及 embed 模块的使用,也要记得导入,前面标个 _ 即可
- 如果是文件夹,采用路径方式 ReadFile 即可读取出 []byte 结果
- 只能获取当前 .go 文件的同级目录下的文件,不能通过 ../ 返回上级目录
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
