如何解决在 go:embed 中使用 ../
我想在 golang 文件代码上方嵌入一个文件。 例如:
目录1
- file.go
目录2
- 文件.txt
如何使用 go:embed 在 file.go 中嵌入 file.txt?
解决方法
documentation 声明:
模式不得包含“.”或“..”或空路径元素,也不得以斜杠开头或结尾。
因此,不直接支持您尝试执行的操作。在 this issue 的评论中提供了更多信息。
您可以做的一件事是在 dir2
中放入一个 go 文件,将 file.txt
嵌入其中,然后在 dir1/file.go
中导入/使用它(假设文件夹在同一个包中).
正如@Brits (https://pkg.go.dev/embed) 所述,嵌入包中不支持此功能
我喜欢使用的一种模式是在我项目的 update `commodity` as `c1` set `c1`.`parent_id` = (
SELECT c2.id FROM commodity c2 WHERE
c2.short_order < c1.short_order AND IF(c1.`c_level` > 0,c2.c_level = (c1.c_level - 1),c2.c_level is null)
ORDER BY c2.short_order DESC LIMIT 1)
where `c1`.`c_level` is not null
包中创建一个 resources.go 文件,并将我所有的嵌入资源放在那里,例如:
internal
resources.go
├── cmd\
│ └── cool.go
└── internal\
└── resources\
├── resources.go
├── fonts\
│ └── coolfont.ttf
└── icons\
└── coolicon.ico
有些库也可以提供帮助,例如此处列出的那些https://github.com/avelino/awesome-go#resource-embedding
但我没有遇到过简单的旧嵌入不足以满足我的需求的用例。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。