go.rice 强大灵活的golang 静态资源嵌入包
以前简单介绍过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
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)
2018-11-05 ballerina 学习二十九 数据库操作
2018-11-05 ballerina 学习二十八 快速grpc 服务开发
2018-11-05 ballerina 学习二十七 项目k8s部署&& 运行