静态资源嵌入

你可以使用 go-assets 将静态资源打包到可执行文件中。

  1. func main() {
  2. r := gin.New()
  3. t, err := loadTemplate()
  4. if err != nil {
  5. panic(err)
  6. }
  7. r.SetHTMLTemplate(t)
  8. r.GET("/", func(c *gin.Context) {
  9. c.HTML(http.StatusOK, "/html/index.tmpl",nil)
  10. })
  11. r.Run(":8080")
  12. }
  13. // loadTemplate 加载由 go-assets-builder 嵌入的模板
  14. func loadTemplate() (*template.Template, error) {
  15. t := template.New("")
  16. for name, file := range Assets.Files {
  17. if file.IsDir() || !strings.HasSuffix(name, ".tmpl") {
  18. continue
  19. }
  20. h, err := ioutil.ReadAll(file)
  21. if err != nil {
  22. return nil, err
  23. }
  24. t, err = t.New(name).Parse(string(h))
  25. if err != nil {
  26. return nil, err
  27. }
  28. }
  29. return t, nil
  30. }

请参阅 examples/assets-in-binary 目录中的完整示例。