func (s *httpServer) embeddedAssetHandler(w http.ResponseWriter, req *http.Request) { var urlRegex = regexp.MustCompile(`^/static/(.+)$`) matches := urlRegex.FindStringSubmatch(req.URL.Path) if len(matches) == 0 { s.ctx.nsqadmin.logf("ERROR: No embedded asset name for url - %s", req.URL.Path) http.NotFound(w, req) return } assetName := matches[1] s.ctx.nsqadmin.logf("INFO: Requesting embedded asset - %s", assetName) asset, error := templates.Asset(assetName) if error != nil { s.ctx.nsqadmin.logf("ERROR: embedded asset access - %s : %s", assetName, error) http.NotFound(w, req) return } assetLen := len(asset) if strings.HasSuffix(assetName, ".js") { w.Header().Set("Content-Type", "text/javascript") } else if strings.HasSuffix(assetName, ".css") { w.Header().Set("Content-Type", "text/css") } w.Header().Set("Content-Length", fmt.Sprintf("%d", assetLen)) w.Write(asset) }
func (s *httpServer) embeddedAssetHandler(w http.ResponseWriter, req *http.Request, ps httprouter.Params) (interface{}, error) { assetName := ps.ByName("asset") asset, error := templates.Asset(assetName) if error != nil { return nil, http_api.Err{404, "NOT_FOUND"} } if strings.HasSuffix(assetName, ".js") { w.Header().Set("Content-Type", "text/javascript") } else if strings.HasSuffix(assetName, ".css") { w.Header().Set("Content-Type", "text/css") } return asset, nil }
func (s *httpServer) embeddedAssetHandler(w http.ResponseWriter, req *http.Request, ps httprouter.Params) { assetName := ps.ByName("asset") s.ctx.nsqadmin.logf("INFO: Requesting embedded asset - %s", assetName) asset, error := templates.Asset(assetName) if error != nil { s.ctx.nsqadmin.logf("ERROR: embedded asset access - %s : %s", assetName, error) http.NotFound(w, req) return } assetLen := len(asset) if strings.HasSuffix(assetName, ".js") { w.Header().Set("Content-Type", "text/javascript") } else if strings.HasSuffix(assetName, ".css") { w.Header().Set("Content-Type", "text/css") } w.Header().Set("Content-Length", fmt.Sprintf("%d", assetLen)) w.Write(asset) }