zoukankan      html  css  js  c++  java
  • packr 方便的潜入静态资源文件到golang 二进制文件中

    类似的工具以前有介绍过statik,今天使用的工具是packr 也是很方便的golang tools

    安装

    go get -u github.com/gobuffalo/packr/packr
    或者我们可以直接使用二进制文件
    下载地址:https://github.com/gobuffalo/packr/releases
    之后配置path 变量即可

    简单项目

    • 项目结构
    ├── go.mod
    ├── go.sum
    ├── main.go
    └── templates
        └── app.t
     
    • 项目创建说明

      项目使用go mod 进行包管理

    go mod init github.com/rongfengliang/packr-demo
    • 代码说明
      main.go
     
    package main
    import (
     "html/template"
     "log"
     "os"
     "github.com/gobuffalo/packr"
    )
    func main() {
     box := packr.NewBox("./templates")
     t, err := template.New("dalongdemo").Parse(box.String("app.t"))
     if err != nil {
      log.Fatal(err)
     }
     err = t.Execute(os.Stdout, "dalongdemo")
     if err != nil {
      log.Fatal(err)
     }
    }
     
     

    构建

    使用packr 工具,方便简化我们代码的处理,同时包含了,自动生成的代码

    • build
    packr build
     

    效果

    ├── README.md
    ├── go.mod
    ├── go.sum
    ├── main-packr.go
    ├── main.go
    ├── packr-demo
    ├── packrd
    └── packed-packr.go
    └── templates
        └── app.t
     
     
    • 运行
     ./packr-demo 
    hello demo dalongdemo

    生成代码效果


    说明

    packr 使用起来还是比较清晰方便的,可以帮助我们简化好多应用打包上的问题,实际上我们结合goreleaser 会更加方便

    参考资料

    https://github.com/rongfengliang/packr-demo
    https://github.com/gobuffalo/packr

  • 相关阅读:
    C语言寒假大作战03
    C语言寒假大作战02
    C语言寒假大作战01
    助教学期总结
    第十六周助教总结
    C语言I博客作业11
    第十五周助教总结
    C语言I博客作业10
    第十四周助教总结
    C语言寒假大作战03
  • 原文地址:https://www.cnblogs.com/rongfengliang/p/10975628.html
Copyright © 2011-2022 走看看