package server import ( "io/fs" "log/slog" "net/http" "time" "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 := cacheMiddleware(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("registering file", "path", path) mux.Handle(path, fileServer) return nil }) if err != nil { slog.Error("could not register static files", "err", err) panic(err) } }