Go官方在1.16版本发布了官方内嵌资源到二进制的功能,使得部署更加简单
在开发web的时候往往会有一些web文件,而部署的时候需要部署一个二进制还要部署web文件比较繁琐,在go1.16之前也有很多包实现了内嵌资源文件到二进制中如https://github.com/gobuffalo/packr,而如今go官方实现了这个特性
package mainimport ( _ "embed" "fmt")//go:embed Dockerfilevar f stringfunc main() { fmt.Println(f)}
上面的例子就是将当前目录的dockerfile内容内嵌到变量f中,编译之后即使这个文件不存在也能打印出内容
package mainimport ( "embed" "fmt" "path/filepath")//go:embed foovar fs embed.FSfunc main() { files, err := fs.ReadDir("foo") if err != nil { fmt.Println(err) } for _, file := range files { d, _ := fs.ReadFile(filepath.Join("foo", file.Name())) if err != nil { fmt.Println(err) } fmt.Println("文件名:", file.Name(), "内容:", string(d)) }}
上面的代码将目录下的foo目录内嵌到fs这个变量中,然后打印出这个文件夹里文字的名字和内容
$ tree foo foo ├── test └── test2 0 directories, 2 files # 编译 $ go build -o test . # 执行 $ ./test 文件名: test 内容: hahah 文件名: test2 内容: testest
路径默认是从mod的目录为根目录
会忽略”.“开头和”_“开头的文件
不管是win还是linux都使用”/“
支持匹配如,//go:embed foo/*.yaml
可以同时导入多个目录 如//go:embed foo test
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/127884.html
摘要:去掉,竟然被设置高于遮住了,神奇的存在。最终解决方案是菜单显示时,一起触发层显示遮住,菜单隐藏时触发,隐藏附加网上常见情况内嵌,解决为内嵌视频,解决为 embed基本没怎么用过,一开始看见竟然以为是过时的播放器标签,就随口说了这个已经时了吧 (汗颜,果断不了解清楚不能乱说话) 认识: 标签定义嵌入的内容,比如插件是HTML5的新标签 我遇到的问题: 问题简述: embed内嵌插件: ...
摘要:你可以试着沿着调用栈代码一层一层的深入进去,如果你不打断点,你根本不知道接下来程序会往哪里流动。接下来再看看运行时堆栈,看看一个请求的调用栈有多深。就是如此被自动装配进的。 摘要: 神奇的SpringBoot。 原文:SpringBoot 究竟是如何跑起来的? 作者:老钱 Fundebug经授权转载,版权归原作者所有。 不得不说 SpringBoot 太复杂了,我本来只想研究一下...
摘要:同时,也提供了一个命令行工具来执行的脚本。应用监控提供一系列端点可以监控服务及应用,能对应用做健康检测。这样,需要对配置信息非常熟悉,要找起问题来不是很容易。相对于优点来说,这些缺点也都不算什么。总之,是值得我们任何一个开发者尝试摸索的。 现在 Spring Boot 非常火,各种技术文章,各种付费教程,多如牛毛,可能还有些不知道 Spring Boot 的,那它到底是什么呢?有什么用...
摘要:完美总结中嵌入图片的种方式在解决这个问题的过程中,顺便查了下,发现除了这个是最容易想到的因为图片也是图片嘛。不过和标签一样,无法显示内嵌的使用标签标签是新增的一个专门显示图片的标签。 最近用到了个SVG图片,里面还是带标签的,想要把它嵌入到HTML中还是有些工作要做的。 经历 最初的图片是这样写的: 这是百度 ? p.s. 先拿百度的图...
阅读 119·2024-11-07 18:25
阅读 130167·2024-02-01 10:43
阅读 790·2024-01-31 14:58
阅读 766·2024-01-31 14:54
阅读 82583·2024-01-29 17:11
阅读 2891·2024-01-25 14:55
阅读 1929·2023-06-02 13:36
阅读 2871·2023-05-23 10:26