r := gin.Default()
r.Use(static.Serve("/", static.LocalFile("web/dist", true)))
r.NoRoute(func(c *gin.Context) {
    accept := c.Request.Header.Get("Accept")
    flag := strings.Contains(accept, "text/html")
    if flag {
       content, err := os.ReadFile("web/dist/index.html")
       if err != nil {
          c.Writer.WriteHeader(404)
          c.Writer.WriteString("Not Found")
          return
       }
       c.Writer.WriteHeader(200)
       c.Writer.Header().Add("Accept", "text/html")
       c.Writer.Write((content))
       c.Writer.Flush()
    }
})

更多推荐