embed 包在 Go 使用场景
· 阅读需 1 分钟
单页应用(SPA)
单页应用通常由 HTML、CSS 和 JavaScript 构成,这些静态文件可以被嵌入到 Go 服务器中,实现完全的后端前端集成。
import (
"embed"
"net/http"
)
//go:embed dist/*
var staticFiles embed.FS
func main() {
http.Handle("/", http.FileServer(http.FS(staticFiles)))
http.ListenAndServe(":8080", nil)
}
命令行工具的配置文件和资源
对于命令行工具,配置文件、模板或其他资源可以被嵌入到二进制文件中,简化用户的配置过程,用户无需手动设置或修改配置文件。
import (
"embed"
"log"
)
//go:embed config/default.yaml
var defaultConfig embed.FS
func loadConfig() {
data, err := defaultConfig.ReadFile("config/default.yaml")
if err != nil {
log.Fatalf("Error loading config: %v", err)
}
// 解析配置文件
parseConfig(data)
}
桌面应用的资源和多媒体内容
在桌面应用中,如图标、图像、音频和视频文件可以被嵌入到应用中,确保应用运行时所有资源都可用。
import "embed"
//go:embed assets/icons/*
var icons embed.FS
//go:embed assets/sounds/notification.wav
var soundNotification embed.FS