静态资源嵌入
你可以方便地使用标准库将静态资源打包到可执行文件中。
func main() { router := gin.Default() templ := template.Must(template.New("").ParseFS(f, "templates/*.tmpl", "templates/foo/*.tmpl")) router.SetHTMLTemplate(templ)
// example: /public/assets/images/example.png router.StaticFS("/public", http.FS(f))
router.GET("/", func(c *gin.Context) { c.HTML(http.StatusOK, "index.tmpl", gin.H{ "title": "Main website", }) })
router.GET("/foo", func(c *gin.Context) { c.HTML(http.StatusOK, "bar.tmpl", gin.H{ "title": "Foo website", }) })
router.GET("favicon.ico", func(c *gin.Context) { file, _ := f.ReadFile("assets/favicon.ico") c.Data( http.StatusOK, "image/x-icon", file, ) })
router.Run(":8080")}
请参阅 assets-in-binary/example01 目录中的完整示例。