package webservice import ( // Standard "embed" "fmt" "net/http" "regexp" ) var ( //go:embed static/js embedded embed.FS pathMatcher *regexp.Regexp = regexp.MustCompile("^/_js/v[0-9]+/(.*)$") ) func (service *Service) staticJSHandler(w http.ResponseWriter, r *http.Request) { var path string if comp := pathMatcher.FindStringSubmatch(r.URL.Path); comp != nil { path = fmt.Sprintf("static/js/%s", comp[1]) } else { service.logger.Debug("webservice", "request", r.URL.Path) return } service.logger.Debug("webservice", "request", r.URL.Path, "path", path) w.Header().Add("Content-Type", "text/javascript") contents, err := embedded.ReadFile(path) if err != nil { fmt.Println(err) return } w.Write(contents) }