+
23
-

go如何将资源文件内嵌到生成的二进制中?

go

go如何将资源文件内嵌到生成的二进制中?


网友回复

+
3
-

使用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%

我知道答案,我要回答