Gin编译打包静态文件和模板文件
简介如果在使用Gin框架编写web应用程序中,如果里面包含了模板文件和静态文件,我们如何进行打包呢?本文主要记录该操作。
            Gin的应用中如果包含了模板文件和静态资源文件,那么后期想将这些文件都打入到二进制包中,那么本文主要记录如何进行打包。前面已经说明Iris如何打包静态文件:Iris框架打包成二进制文件(包含静态文件),可以作为参考。
项目目录结构中包含的静态文件和模板文件:
|- static //静态目录
   |--- js
   |--- css
   |--- images
|- templates //模板目录
   |--- index.html
   |--- login.html
1、安装bindata
go get -u github.com/jteeuwen/go-bindata/... #后面三个点必须要,不是写错了 go get -u github.com/elazarl/go-bindata-assetfs/... #后面三个点必须要,不是写错了
2、打包静态资源和模板文件
go-bindata -o=bindata/bindata.go -pkg=bindata ./static/... ./templates/...
这里将打包后的文件输出到bindata/bindata.go文件中,而且将包名设置为:bindata,这里打包了static和templates目录下所有文件。
3、修改模板文件
修改前:
//加载模板文件
router.LoadHTMLGlob("./templates/*")
修改后:
//加载模板文件
t, err := loadTemplate()
if err != nil {
	panic(err)
}
router.SetHTMLTemplate(t)
/////////////////////////////新增函数///////////////////////////////
//加载模板文件
func loadTemplate() (*template.Template, error) {
	t := template.New("")
	for _, name := range bindata.AssetNames() {
		if !strings.HasSuffix(name, ".html") {
			continue
		}
		asset, err := bindata.Asset(name)
		if err != nil {
			continue
		}
		name := strings.Replace(name, "templates/", "", 1) //这里将templates替换下,在控制器中调用就不用加templates/了
		t, err = t.New(name).Parse(string(asset))
		if err != nil {
			return nil, err
		}
	}
	return t, nil
}
4、修改静态文件调用
修改前:
//加载静态资源,例如网页的css、js
router.Static("/static", "static")
修改后:
//加载静态资源,例如网页的css、js
fs := assetfs.AssetFS{
	Asset:     bindata.Asset,
	AssetDir:  bindata.AssetDir,
	AssetInfo: nil,
	Prefix:    "static", //一定要加前缀
}
router.StaticFS("/static", &fs)
5、进行编译
go build -o 编译后文件名称
注意:Gin运行时设置的监听地址必须是0.0.0.0,否则会出现在通过docker run运行是设置的端口映射造成访问不了。
 在使用Git的过程中,不想每次都输入用户名和密码去拉取代码,所以就需要保存这些信息,那么既然有保存了,就必须有清除功能。
在使用Git的过程中,不想每次都输入用户名和密码去拉取代码,所以就需要保存这些信息,那么既然有保存了,就必须有清除功能。 nodejs中使用npm和yarn,使用最新阿里云镜像 aliyun mirror,网上很多还是文章用的是下面这个地址~~yarn config set registry https://registry.npm.taobao.org~~
nodejs中使用npm和yarn,使用最新阿里云镜像 aliyun mirror,网上很多还是文章用的是下面这个地址~~yarn config set registry https://registry.npm.taobao.org~~ 《是妈妈是女儿》聚焦母女间未曾言明的爱意,以书信对话的形式呈现出各自的内心独白,表达彼此的牵挂。黄绮珊与希林娜依·高用跨越时空、打开心扉、深情对唱的形式,将天下母女爱的寄语化作心灵的倾诉。黄绮珊的每一句话,每一个字都演绎出了妈妈对女儿的爱,而希林依娜·高把女儿对妈妈的爱由不理解到理解再到感恩演绎得淋漓尽致。
《是妈妈是女儿》聚焦母女间未曾言明的爱意,以书信对话的形式呈现出各自的内心独白,表达彼此的牵挂。黄绮珊与希林娜依·高用跨越时空、打开心扉、深情对唱的形式,将天下母女爱的寄语化作心灵的倾诉。黄绮珊的每一句话,每一个字都演绎出了妈妈对女儿的爱,而希林依娜·高把女儿对妈妈的爱由不理解到理解再到感恩演绎得淋漓尽致。 Towxml 是一个让小程序(微信/QQ)可以解析Markdown、HTML的解析库。能够使小程序完美解析Markdown内容。
Towxml 是一个让小程序(微信/QQ)可以解析Markdown、HTML的解析库。能够使小程序完美解析Markdown内容。 默认情况下 pip 使用的是国外的镜像,在下载的时候速度非常慢,本文我们介绍使用国内源对pip进行加速。
默认情况下 pip 使用的是国外的镜像,在下载的时候速度非常慢,本文我们介绍使用国内源对pip进行加速。 快速生成表格
快速生成表格 Electron页面跳转、浏览器打开链接和打开新窗口
Electron页面跳转、浏览器打开链接和打开新窗口 Docker编译镜像出现:fetch http://dl-cdn.alpinelinux.org/alpine/v3.12/main/x86_64/APKINDEX.tar.gz
ERROR: http://dl-cdn.alpinelinux.org/alpine/v3.12/main: temporary error (try again later)
WARNING: Ignoring APKINDEX.2c4ac24e.tar.gz: No such file or directory问题
Docker编译镜像出现:fetch http://dl-cdn.alpinelinux.org/alpine/v3.12/main/x86_64/APKINDEX.tar.gz
ERROR: http://dl-cdn.alpinelinux.org/alpine/v3.12/main: temporary error (try again later)
WARNING: Ignoring APKINDEX.2c4ac24e.tar.gz: No such file or directory问题 在Mac电脑中,如何对Git的用户名和密码进行修改呢?起初不懂Mac,所以整了很久,本文将记录如何对这个进行操作,以便后期使用。
在Mac电脑中,如何对Git的用户名和密码进行修改呢?起初不懂Mac,所以整了很久,本文将记录如何对这个进行操作,以便后期使用。