的安装 我们在 make build 时可能会遇到 缺少 go-bindata 的问题: # make build Generating static files internal/migrations.../migrations.go:1: running "go-bindata": exec: "go-bindata": executable file not found in $PATH make:...*** [statics] Error 1 go get -u github.com/jteeuwen/go-bindata/......安装完了之后可能会找不到go-bindata,提示错误:“-bash: /usr/bin/go-bindata: No such file or directory”。...找到之后,在PATH里面追加go-bindata的路径。
目前项目中会用到的 go-bindata 的项目主要有四个,分别是: (1500+ stars)https://github.com/go-bindata/go-bindata (840+ stars)...+ stars)https://github.com/kevinburke/go-bindata 这些项目的共同起源是 jteeuwen/go-bindata 这个项目,它的第一行代码提交于 十年前的2011...在这几个仓库中,go-bindata/go-bindata 是知名度最高的版本,elazarl/go-bindata-assetfs 提供了原版软件不支持 net/http 使用的 FS 封装。...相比较原版以及go-bindata/go-bindata 代码,它的代码健壮程度更好,并且修正了社区用户对 go-bindata/go-bindata 反馈的一些问题,添加了一些社区用户期望的新功能。...接下来,我们就先聊聊 go-bindata 的基础使用和性能表现吧。 基础使用:go-bindata 默认配置 和上一篇文章一样,在了解性能差异之前,我们先来完成基础功能的编写。
下面就来看一些解决方案: go-bindata go-bindata 是目前我的程序 pugo 在用的嵌入静态资源的工具。它可以把静态文件嵌入到一个 go 文件中,并提供一些操作方法。...安装 go-bindata: go get -u github.com/jteeuwen/go-bindata/... 注意 go get 地址最后的三个点 ...。...使用命令工具 go-bindata ( pugo 的例子): go-bindata -o=app/asset/asset.go -pkg=asset source/... theme/... doc/...-debug 开发模式 go-bindata 支持开发模式,即不嵌入静态内容,只生成操作方法到输出的 go 代码中,如: go-bindata -debug -o=app/asset/asset.go...最后选择 go-bindata。但是 go-bindata 和 go.rice 都是将纯字符数据或 []byte 字符数据写入 go 文件,内容非常大。
系列文章目录 第一章 Go 语言打包静态文件以及如何与Gin一起使用Go-bindata --- Table of Contents 系列文章目录 前言 一、go-bindata是什么?...在一些网上资料上发现了 go-bindata。这样我还是只分发一个文件就可以了,不过打包出来的文件会大一点。 一、go-bindata是什么?...使用 使用 go-bindata --help 可以查看具体的使用方式 go-bindata --help Usage: go-bindata [options] ...安装 go-bindata-assetfs 这个需要和 go-bindata 一起安装,如果已经安装了 go-bindata 则不需要再次安装 go get github.com/go-bindata...如果你搜索 go-bindata 的文章,会发现早期的文章指向的项目地址往往是:https://github.com/jteeuwen/go-bindata 。
安装工具 安装打包工具 go-bindata 到GOPATH/bin中 # ......检查所有目录下的main包编译可执行文件 go get -u github.com/jteeuwen/go-bindata/......@master 安装依赖 go-bindata只是把静态文件转化成 go 文件,在代码中读取这些静态文件需要使用go-bindata-assetfs go get -u github.com/elazarl.../go-bindata-assetfs 使用 切换到项目路径下,这里一个 web 服务器为例,所有静态资源放在 www 目录下 执行go-bindata -o=data/data.go -pkg=data...生成的 go 文件本身提供的一些方法返回文件的[]byte内容,可以根据需求自已去拿 每次静态文件改动的话在打包前记得重新执行go-bindata命令
与 go-bindata 类似,esc 同样提供了将静态文件转换为go源码并暴露了类似于http.FileSystem的API来读取数据的功能。...-u github.com/mjibson/esc 使用 https://github.com/mjibson/esc#example 对比: https://github.com/jteeuwen/go-bindata...https://github.com/mjibson/esc https://github.com/rakyll/statik https://github.com/gobuffalo/packr go-bindata...、go.rice 和 esc 简单对比:https://studygolang.com/articles/5068 esc 没有 go-bindata 那样丰富的API,但会将嵌入的字节数据压缩,大大缩小了代码以及编译后的二进制程序体积
go-bindata/go-bindatagobuffalo/packrmarkbates/pkgerrakyll/statik使用go-bindata将数据文件转换成Go代码安装go-bindata:...go get -u github.com/go-bindata/go-bindata/...将配置文件生成Go代码:go-bindata -o configs/config.go -pkg configs
/test 42 | wasm打包到golang二进制中 这里我们用 github.com/go-bindata/go-bindata go get -u github.com/go-bindata/...go-bindata/......把wasm生成一个add.go文件 go-bindata -o add.go add/target/wasm32-unknown-unknown/release/add.wasm 然后稍微改一行我们的golang
third_party/swagger-ui 目录下 cp xx/dist/* my_grpcgateway/third_party/swagger-ui/ 安装必要的静态资源转换包 第一,先下载 go-bindata...,用处是 go-bindata 用来将 swagger-ui 的源码转为 GO 代码 go get -u github.com/jteeuwen/go-bindata/......第二,下载 go-bindata-assetfs,用处是 go-bindata-assetfs 能够结合 net/http 标准库和 go-bindata 所生成 Swagger UI 的 Go 代码两者来供外部访问...在 my_grpcgateway 目录下新建 pkg 目录,并使用工具在 pkg 目录下新增 swagger-ui 涉及的代码 cd my_grpcgateway mkdir pkg go-bindata
/vendor/github.com/jteeuwen/go-bindata/go-bindata +++ [0316 13:45:02] Building go targets for linux/amd64...kube-proxy mounter conversion-gen e2e_node.test genkubedocs genyaml go-bindata.../vendor/github.com/jteeuwen/go-bindata/go-bindata +++ [0316 11:49:46] Building go targets for linux/amd64
官方示例还是采用的是shell脚本,建议替换到 go:generate 中,这样的代码更统一 原理 可以简单地理解成一个类型替换的工具(PS:擅长用sed脚本的朋友也可直接通过shell脚本实现) go-bindata...源网站链接:https://github.com/go-bindata/go-bindata go-bindata的功能是将任意格式的源文件,转化为Go代码,使我们无需再去打开文件读取了。
/vendor/github.com/jteeuwen/go-bindata/go-bindata +++ [0716 01:31:46] Building go targets for linux/amd64...35 genyaml -rwxr-xr-x 1 root root 8.4M Jul 16 01:35 ginkgo -rwxr-xr-x 1 root root 2.0M Jul 16 01:21 go-bindata.../vendor/github.com/jteeuwen/go-bindata/go-bindata +++ [0714 14:13:31] Building go targets for linux/amd64...rwxr-xr-x 1 root root 6742912 Jul 14 14:13 defaulter-gen* -rwxr-xr-x 1 root root 2059136 Jul 14 14:13 go-bindata.../vendor/github.com/jteeuwen/go-bindata/go-bindata +++ [0716 00:34:29] Building go targets for linux/amd64
我们拿 go-bindata 举例. go-bindata pkger 首先我们创建一个项目: 1mkdir embed-demo && cd embed-demo 2go mod init embed.../demo 3# 安装打包工具 4go get -u github.com/go-bindata/go-bindata/......然后我们复制一个png图片进images文件夹,整个项目看起来如下: 然后是我们的代码 1package main 2 3import "log" 4 5//go:generate go-bindata...return 12 } 13 log.Print(len(fp)) 14} 想要完成资源嵌入,我们需要运行 go generate 命令, 之后直接运行 go build 即可, 顺利运行后项目如下: go-bindata...byte 10 11func main() { 12 log.Println(len(image)) 13} 如果编译运行这个程序,你会发现二进制文件的大小是4.5M(不同系统会有差异),比我们之前使用go-bindata
实现步骤如下: 下载两个Golang的第三方包 go get github.com/jteeuwen/go-bindata/... go get github.com/elazarl/go-bindata-assetfs
在早些时候,《深入浅出 Golang 资源嵌入方案:前篇[8]》、《深入浅出 Golang 资源嵌入方案:go-bindata篇[9]》这两篇文章中,我提到过的 Golang 官方和社区排名靠前的资源嵌入方案...http.StatusMovedPermanently, "/somewhere") }) 文件嵌入 在早些时候,《深入浅出 Golang 资源嵌入方案:前篇[13]》、《深入浅出 Golang 资源嵌入方案:go-bindata...soulteary.com/2022/01/15/explain-the-golang-resource-embedding-solution-part-1.html [9] 深入浅出 Golang 资源嵌入方案:go-bindata...soulteary.com/2022/01/15/explain-the-golang-resource-embedding-solution-part-1.html [14] 深入浅出 Golang 资源嵌入方案:go-bindata
该插件是上一篇《gRPC-Gateway实战》中安装好的; 在gRPC-Gateway的代码中集成swagger-ui的代码:swagger-ui的代码由多个png、html、js文件组成,需要用工具go-bindata...GOPATH/src下面新建名为swaggerdemo的文件夹; 安装必要的go包 安装git,执行命令sudo yum install -y git unzip 工程中会用到几个包,接下来逐个安装; go-bindata...用来将swagger-ui的源码转为GO代码: go get -u github.com/jteeuwen/go-bindata/... go-bindata-assetfs在应用启动后,对外提供文件服务...src/swaggerdemo/pkg/ui/data/swagger 执行以下命令,将swagger-ui源码转为datafile.go文件: cd $GOPATH/src/swaggerdemo/ go-bindata
example.com.key(记得重命名为上面的) 编译服务端 cd ngrok/ make release-server 如果在这里编译出错了,那你应该是选择了下载安装,解决方法: #make: bin/go-bindata...: Command not found错误 cd $GOROOT/bin 把go-bindata复制到ngrok/bin/目录下即可,之后再重新编译。
系列文章目录 Go 语言打包静态文件以及如何与Gin一起使用Go-bindata --- Table of Contents 系列文章目录 前言 一、关于跨域解决方案 二、使用步骤 - 1.
defaulter-gen go2make openapi-gen deepcopy-gen go-bindata...kube-proxy linkcheck e2e.test go-bindata
领取专属 10元无门槛券
手把手带您无忧上云