all repos — searchix @ 60b8ef0aad7364f462449990e9edd7b53d01c4be

Search engine for NixOS, nix-darwin, home-manager and NUR users

feat: serve assets from root

Alan Pearce
commit

60b8ef0aad7364f462449990e9edd7b53d01c4be

parent

263357689148b7dc01f7dd2d55d980a085dc5c9a

3 files changed, 15 insertions(+), 8 deletions(-)

changed files
M frontend/assets.gofrontend/assets.go
@@ -12,9 +12,10 @@ "github.com/Southclaws/fault/fmsg"
) type Asset struct { - URL string - ETag string - Filename string + StaticURL string + URL string + ETag string + Filename string } type AssetCollection struct {
@@ -50,10 +51,16 @@ if _, err := io.Copy(hash, file); err != nil {
return nil, fault.Wrap(err, fmsg.Withf("could not hash file %s", filename)) } + rel, err := filepath.Rel("static", filename) + if err != nil { + return nil, fault.Wrap(err, fmsg.Withf("could not get relative path for %s", filename)) + } + return &Asset{ - URL: "/" + filename, - ETag: fmt.Sprintf(`W/"%x"`, hash.Sum(nil)), - Filename: filename, + StaticURL: "/" + filename, + URL: "/" + rel, + ETag: fmt.Sprintf(`W/"%x"`, hash.Sum(nil)), + Filename: filename, }, nil }
@@ -78,6 +85,7 @@ case ".css":
a.Stylesheets = append(a.Stylesheets, asset) } a.ByPath[asset.URL] = asset + a.ByPath[asset.StaticURL] = asset } return nil
M internal/components/page.gointernal/components/page.go
@@ -21,7 +21,6 @@ Meta(Name("viewport"), Content("width=device-width, initial-scale=1")),
TitleEl(g.Text("Searchix"), g.If(config.DevMode, g.Text(" (Dev)"))), g.Map(tdata.Assets.Stylesheets, css), g.Raw(tdata.ExtraHeadHTML), - Link(Rel("icon"), Href("/static/favicon.ico")), g.If(len(tdata.Sources) > 0, Link( Rel("search"),
M internal/server/mux.gointernal/server/mux.go
@@ -366,7 +366,7 @@ )
} }) - mux.HandleFunc("/static/", func(w http.ResponseWriter, r *http.Request) { + mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { asset, found := assets.ByPath[r.URL.Path] if !found { http.Error(w, http.StatusText(http.StatusNotFound), http.StatusNotFound)