• 静态资源嵌入

    静态资源嵌入

    你可以使用 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 目录中的完整示例。