gpt4 book ai didi

Go:在二进制中嵌入静态文件

转载 作者:IT王子 更新时间:2023-10-29 01:36:44 26 4
gpt4 key购买 nike

这可能是一个非常业余的问题。我正在尝试将静态文件嵌入到二进制文件中,即。 HTML。我如何使用 https://github.com/jteeuwen/go-bindata 做到这一点? ?

所以我可以使用这个 https://github.com/jteeuwen/go-bindata#accessing-an-asset 访问 Assets ,但我如何处理“数据”,以及如何解析文件、执行模板并在目录中提供它们?

我在网上找不到任何示例,非常感谢您的帮助!

最佳答案

5/6 年后,使用 Go 1.16(2021 年第一季度)这应该会更容易,它增加了对嵌入式文件的支持(issue/proposal 41191)

It will be permitted to use //go:embed naming a single file to initialize a plain string or []byte variable:

//go:embed gopher.png
var gopherPNG []byte

导入需要将文件标记为包含 //go:embed 行并需要处理。
Goimports(和 gopls 等)可以学习此规则,并根据需要自动将导入添加到带有 //go:embed 的任何文件中。

这引发了关于 issue 42328 的辩论关于如何在使用 //go:embed

时避免意外包含“隐藏”文件

这已在 CL 275092 中解决和 commit 37588ff

Decision to exclude files matching .* and _* from embedded directory results when embedding an entire directory tree.

参见 src/embed/internal/embedtest/embed_test.go

    //go:embed testdata/k*.txt
var local embed.FS
testFiles(t, local, "testdata/ken.txt", "If a program is too slow, it must have a loop.\n")

//go:embed testdata/k*.txt
var s string
testString(t, s, "local variable s", "If a program is too slow, it must have a loop.\n")

//go:embed testdata/h*.txt
var b []byte
testString(t, string(b), "local variable b", "hello, world\n")

注意:使用CL 281492 , cmd/go 如果支持,将 embedcfg 传递给 gccgo


另请参阅(2021 年 1 月)issue 43854 “选择加入 //go:embed忽略文件和空目录”。

关于Go:在二进制中嵌入静态文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27889779/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com