资讯专栏INFORMATION COLUMN

go资源内嵌embed

社区管理员 / 865人阅读

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 嵌入插件遮住 div层 解决方案

    摘要:去掉,竟然被设置高于遮住了,神奇的存在。最终解决方案是菜单显示时,一起触发层显示遮住,菜单隐藏时触发,隐藏附加网上常见情况内嵌,解决为内嵌视频,解决为 embed基本没怎么用过,一开始看见竟然以为是过时的播放器标签,就随口说了这个已经时了吧 (汗颜,果断不了解清楚不能乱说话) 认识: 标签定义嵌入的内容,比如插件是HTML5的新标签 我遇到的问题: 问题简述: embed内嵌插件: ...

    whinc 评论0 收藏0
  • SpringBoot究竟是如何跑起来的?

    摘要:你可以试着沿着调用栈代码一层一层的深入进去,如果你不打断点,你根本不知道接下来程序会往哪里流动。接下来再看看运行时堆栈,看看一个请求的调用栈有多深。就是如此被自动装配进的。 摘要: 神奇的SpringBoot。 原文:SpringBoot 究竟是如何跑起来的? 作者:老钱 Fundebug经授权转载,版权归原作者所有。 不得不说 SpringBoot 太复杂了,我本来只想研究一下...

    DevWiki 评论0 收藏0
  • 告诉你,Spring Boot 真是个牛逼货!

    摘要:同时,也提供了一个命令行工具来执行的脚本。应用监控提供一系列端点可以监控服务及应用,能对应用做健康检测。这样,需要对配置信息非常熟悉,要找起问题来不是很容易。相对于优点来说,这些缺点也都不算什么。总之,是值得我们任何一个开发者尝试摸索的。 现在 Spring Boot 非常火,各种技术文章,各种付费教程,多如牛毛,可能还有些不知道 Spring Boot 的,那它到底是什么呢?有什么用...

    MoAir 评论0 收藏0
  • HTML中嵌入SVG图片的N种方式

    摘要:完美总结中嵌入图片的种方式在解决这个问题的过程中,顺便查了下,发现除了这个是最容易想到的因为图片也是图片嘛。不过和标签一样,无法显示内嵌的使用标签标签是新增的一个专门显示图片的标签。 最近用到了个SVG图片,里面还是带标签的,想要把它嵌入到HTML中还是有些工作要做的。 经历 最初的图片是这样写的: 这是百度 ? p.s. 先拿百度的图...

    NickZhou 评论0 收藏0

发表评论

0条评论

社区管理员

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<