【Golang】Golang使用embed加载、打包静态资源文件
在Go 1.16及以上版本中,可以使用embed
包来嵌入并访问文件系统上的文件或者其他编译成Go程序一部分的文件。以下是一个简单的例子,展示如何使用embed
包加载和访问静态资源文件。
首先,你需要导入embed
包:
import "embed"
然后,使用//go:embed
指令来标记需要嵌入的文件或文件夹。例如,如果你想嵌入static
目录下的所有文件:
//go:embed static/*
var staticFS embed.FS
接下来,你可以像使用http.FileSystem
一样使用staticFS
来提供静态资源。
下面是一个完整的示例,它创建了一个简单的HTTP服务器,提供了static
目录下的静态资源:
package main
import (
"embed"
"io/fs"
"net/http"
)
//go:embed static/*
var staticFS embed.FS
func main() {
// 由于embed.FS的Open方法返回fs.FS,我们可以直接将其用作http.FileSystem
http.Handle("/static/", http.StripPrefix("/static/", http.FileServer(http.FS(staticFS))))
http.ListenAndServe(":8080", nil)
}
在这个例子中,当你访问http://localhost:8080/static/<文件名>
时,你会得到static
目录下相应的文件。
请注意,embed
包是Go 1.16引入的,如果你使用的是更早的版本,你需要手动管理文件的嵌入和访问。
评论已关闭