首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用../ at go:embed注释

使用../ at go:embed注释
EN

Stack Overflow用户
提问于 2021-07-27 06:30:36
回答 2查看 274关注 0票数 1

我想嵌入一个文件放置在高丽文件代码之上的一个级别。例如:

dir1

  • file.go

dir2

  • file.txt

如何使用go:embed将file.txt嵌入到file.go中?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-07-27 07:00:57

文档指出:

模式可能不包含“。”或者“.”或空路径元素,也不能以斜杠开头或结尾。

因此,您所要做的并不是直接支持。更多信息可在关于本期的评论中获得。

您可以做的一件事是在dir2中放置一个go文件,在其中嵌入file.txt,然后在dir1/file.go中导入/使用它(假设文件夹在同一个包中)。

票数 4
EN

Stack Overflow用户

发布于 2021-07-27 07:39:35

正如@Brits (https://pkg.go.dev/embed)所述,嵌入包中不支持这一点。

我喜欢使用的一种模式是在我的项目的resources.go包中创建一个internal文件,并将所有嵌入的资源放在其中,例如:

代码语言:javascript
复制
├── cmd\ 
│   └── cool.go
└── internal\
    └── resources\
        ├── resources.go
        ├── fonts\
        │   └── coolfont.ttf
        └── icons\
            └── coolicon.ico

resources.go

代码语言:javascript
复制
import _ "embed"

//go:embed fonts/coolfont.fs
var fonts byte[] // embed single file

//go:embed icons/*
var icons embed.FS // embed whole directory

也有一些库可以帮助这一点,例如这里列出的库https://github.com/avelino/awesome-go#resource-embedding

但是,我还没有遇到一个用例,在这种情况下,普通的旧嵌入并不足以满足我的需求。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68539972

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档