• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

go.rice强大灵活的golang静态资源嵌入包

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

以前简单介绍过packr ,statik 等静态资源嵌入工具包的使用,go.rich 是一个与packr 类似的静态资源嵌入包,使用简单
功能强大

项目结构

  • golang mod
 
go mod init github.com/rongfengliang/rice-app
  • 项目结构
├── Makefile
├── README.md
├── go.mod
├── go.sum
├── http-files
├── app.css
└── index.html
├── main.go
└── rice-box.go
  • 代码说明
    http-files 为静态资源的位置,我们可以通过代码直接引用,main.go 为入口,Makefile 为通过make 的跨平台编译处理
    rice-box.go 是使用go generate 生成的资源代码
    main.go
 
package main
//go:generate go run github.com/GeertJohan/go.rice/rice embed-go
import (
  "log"
  "net/http"
  rice "github.com/GeertJohan/go.rice"
)
func main() {
  http.Handle("/", http.FileServer(rice.MustFindBox("http-files").HTTPBox()))
  err := http.ListenAndServe(":8080", nil)
  if err != nil {
    log.Fatalln("some wrong will exit")
  }
}

go.mod

module github.com/rongfengliang/rice-app
go 1.13
require github.com/GeertJohan/go.rice v1.0.0
 

Makefile

build-app: clean make-dir generate build-mac build-linux build-windows
clean:
  rm -rf build/* && rm -rf rice-box.go
generate:
  go generate
make-dir:
  mkdir -p build/{mac,linux,windows}
build-mac:
  CGO_ENABLED=0 GOOS=darwin GOARCH=amd64 go build -o build/mac 
build-linux:
  CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -o build/linux 
build-windows:
  CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build -o build/windows

运行&&效果

  • 运行&&构建
make
  • 运行效果
./build/mac/rice-app 

效果

 

 

说明

go.rice 在功能上与packr很类似,都是一个很不错的golang 静态资源嵌入工具包

参考资料

https://github.com/GeertJohan/go.rice
https://github.com/rongfengliang/go-rice-learning


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Go操作Mysql(一)发布时间:2022-07-10
下一篇:
凛冬之翼---go语言的入门发布时间:2022-07-10
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap