func (h *Handler) getTemplate(name string) (string, error) { baseTmpl, err := ui.Asset("web/ui/templates/_base.html") if err != nil { return "", fmt.Errorf("error reading base template: %s", err) } pageTmpl, err := ui.Asset(filepath.Join("web/ui/templates", name)) if err != nil { return "", fmt.Errorf("error reading page template %s: %s", name, err) } return string(baseTmpl) + string(pageTmpl), nil }
func serveStaticAsset(w http.ResponseWriter, req *http.Request) { fp := route.Param(route.Context(req), "filepath") fp = filepath.Join("web/ui/static", fp) info, err := ui.AssetInfo(fp) if err != nil { log.With("file", fp).Warn("Could not get file info: ", err) w.WriteHeader(http.StatusNotFound) return } file, err := ui.Asset(fp) if err != nil { if err != io.EOF { log.With("file", fp).Warn("Could not get file: ", err) } w.WriteHeader(http.StatusNotFound) return } http.ServeContent(w, req, info.Name(), info.ModTime(), bytes.NewReader(file)) }