go语言打包html,Go语言-打包静态文件

本文介绍了如何在Go语言中打包静态文件,如HTML,到编译后的二进制文件。主要讨论了go-bindata、go-bindata-assetfs、go.rice和esc等工具的使用方法,包括如何打包、解压静态资源以及实现HTTP服务提供静态文件。通过这些工具,可以在Go应用启动时自动解压并服务静态文件。
摘要由CSDN通过智能技术生成

对于 Go 语言开发者来说,在享受语言便利性的同时,最终编译的单一可执行文件也是我们所热衷的。

但是,Go在编译成二进制文件时并没有把我们的静态资源文件编译进去,如果我们开发的是web应用的话就需要想办法把我们的静态文件也编译进去。

本文收集了一些Go语言中用来在编译过程中将静态文件打包到编译文件的方法。

go-bindata

在 Go 语言的 Awesome

中你可以看到很多静态打包库,但是,你却看不到 go-bindata, go-bindata

明显更受欢迎,更流行。

go-bindata 很简单,设计理念也不难理解。它的任务就是讲静态文件封装在一个 Go 语言的 Source Code 里面,然后提供一个统一的接口,你通过这个接口传入文件路径,它将给你返回对应路径的文件数据。这也就是说它不在乎你的文件是字符型的文件还是字节型的,你自己处理,它只管包装。

简单来说就是它可以把我们的静态文件生成 .go

文件,这样就可以编译成二进制文件,项目启动的时候再把这个 .go

文件再释放成静态文件

使用

打包整个静态目录,使用的时候释放

# 目录结构

ConfigTest

├── asset

│ └── asset.go 静态文件编译之后的go文件

├── config # 静态文件目录

│ ├── rule.yaml

│ └── rule.json

├── cli # 运行目录

│ ├── config 执行main释放出来的静态文件

│ │ ├── rule.yaml

│ │ └── rule.json

│ └── main # main.go编译之后生成的二进制执行文件

└── main 程序目录

└── main.go # 源码

执行命令将静态文件打包成go文件

go-bindata -o=./asset/asset.go -pkg=asset config/...

-o # 指定打包后生成的go文件路径

-pkg # 指定go文件的包名

config/... # 指定需要打包的静态文件路径

main函数中解压静态文件

package main

import "ConfigTest/asset"

func main() {

dirs := []string{"config"} // 设置需要释放的目录

for _, dir := range dirs {

// 解压dir目录到当前目录

if err := asset.RestoreAssets("./", dir); err != nil {

break

}

}

}

编译 main.go

执行二进制文件

cd cli && go build ../main/main.go

./main

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值