| package common | |
| import ( | |
| "embed" | |
| "github.com/gin-contrib/static" | |
| "io/fs" | |
| "net/http" | |
| ) | |
| // Credit: https://github.com/gin-contrib/static/issues/19 | |
| type embedFileSystem struct { | |
| http.FileSystem | |
| } | |
| func (e embedFileSystem) Exists(prefix string, path string) bool { | |
| _, err := e.Open(path) | |
| if err != nil { | |
| return false | |
| } | |
| return true | |
| } | |
| func EmbedFolder(fsEmbed embed.FS, targetPath string) static.ServeFileSystem { | |
| efs, err := fs.Sub(fsEmbed, targetPath) | |
| if err != nil { | |
| panic(err) | |
| } | |
| return embedFileSystem{ | |
| FileSystem: http.FS(efs), | |
| } | |
| } | |