r := gin.Default()
r.Use(static.Serve("/", static.LocalFile("templates/index.html", true)))

3. 关键点【解决页面刷新404的问题】

// 关键点【解决页面刷新404的问题】
    // 404 NotFound
    r.NoRoute(func(c *gin.Context) {
        accept := c.Request.Header.Get("Accept")
        flag := strings.Contains(accept, "text/html")
        if flag {
            content, err := ioutil.ReadFile("templates/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()