package server import ( "io/fs" "log/slog" "net/http" "time" "git.schreifuchs.ch/schreifuchs/schreifuchs.ch/internal/pkg/middleware" "git.schreifuchs.ch/schreifuchs/schreifuchs.ch/web" ) // registerStatic registers all the static files. func registerStatic(mux *http.ServeMux) { fileSystem := web.GetStaticFS() // we still use go's fileServer to avoid unnecessary implementation fileServer := middleware.Cache(time.Hour * 24)(http.FileServer(http.FS(fileSystem))) err := fs.WalkDir(fileSystem, ".", func(path string, d fs.DirEntry, err error) error { if err != nil { return err } if d.IsDir() { return nil } path = "/" + path slog.Debug("registered static file", "path", path) mux.Handle(path, fileServer) return nil }) if err != nil { slog.Error("could not register static files", "err", err) panic(err) } }