2021-04-03发表2021-04-03更新Vue+GIN前后端分离项目打包成二进制问题使用GIN自带静态资源服务器需要设置一个子目录,而这对于Vue项目来说显然是不合理的,如果使用根目录则会和其他路由冲突,所以需要对静态资源针对性处理 原理阅读更多
2020-11-14发表2020-11-14更新将GIN的模板资源嵌入二进制利用statik库将静态资源嵌入二进制,但是GIN并没有提供从http.FileSystem加载模板的方法,所以得手动去加载 主要实现 12345678910111213141516171819202122232425262728293031323334func initTemplates() *template.Template { statikFS, err := fs.New() if err != nil { log.Fatal(err) } t := template.New("") //找出所有扩展名为.gohtml的文件,将其解析为模板 err = fs.Walk(statikFS, config.TemplateDir, func(path string, info os.FileInfo, err error) error { if filepath.Ext(info.Name()) == ".gohtml" { f, err := statikFS.Open(path) if err != nil { return err } b, err := ioutil.ReadAll(f) if err != nil { return err } _, err = t.New(path[1:]).Parse(string(b)) //此处去掉 path 前的 / 来作为模板的文件名 if err != nil { return err } } return nil }) if err != nil { log.Println("Load templates error") log.Fatal(err) } return t}阅读更多