37 lines
547 B
Go
37 lines
547 B
Go
package common
|
|
|
|
import (
|
|
"embed"
|
|
"io/fs"
|
|
"net/http"
|
|
)
|
|
|
|
//go:embed assets/*
|
|
var assetsFS embed.FS
|
|
|
|
type Handler struct {
|
|
mux *http.ServeMux
|
|
}
|
|
|
|
// ServeHTTP implements http.Handler.
|
|
func (h *Handler) ServeHTTP(w http.ResponseWriter, r *http.Request) {
|
|
h.mux.ServeHTTP(w, r)
|
|
}
|
|
|
|
func NewHandler() *Handler {
|
|
handler := &Handler{
|
|
mux: http.NewServeMux(),
|
|
}
|
|
|
|
assets, err := fs.Sub(assetsFS, "assets")
|
|
if err != nil {
|
|
panic(err)
|
|
}
|
|
|
|
handler.mux.Handle("GET /", http.FileServerFS(assets))
|
|
|
|
return handler
|
|
}
|
|
|
|
var _ http.Handler = &Handler{}
|