go如何将资源文件内嵌到生成的二进制中?
网友回复
使用embed功能,他是Go 1.16+ 的新增功能静态文件内嵌到二进制文件中。例如
将 templates/ 目录下的 .html 文件和 static/style.css 内嵌进二进制,并启动一个 HTTP 服务器,访问根路径即可看到 index.html 页面。
完整代码:main.go
package main
import (
"embed"
"fmt"
"net/http"
)
//go:embed templates/*.html static/*
var content embed.FS
func main() {
// 可选:打印 index.html 内容到控制台(调试用)
if data, err := content.ReadFile("templates/index.html"); err == nil {
fmt.Println("Loaded index.html:")
fmt.Println(string(data))
}
// 启动 HTTP 服务器,直接托管内嵌的静态资源
http.Handle("/", http.FileServer(http.FS(content)))
fmt.Println("Server starting o...点击查看剩余70%


