diff --git a/handler.go b/handler.go index 975932e..44551dc 100644 --- a/handler.go +++ b/handler.go @@ -57,7 +57,7 @@ func HandleFiles(path string, options HandlerOptions, mux *http.ServeMux) { clientVersion: options.ClientVersion, }) if options.ActivateLiveReloading { - mux.Handle("/_livereloader_", reloader{ + http.Handle("/_livereloader_", reloader{ clientVersion: options.ClientVersion, }) } diff --git a/helper.go b/helper.go index 994a8d9..5a8f7d9 100644 --- a/helper.go +++ b/helper.go @@ -2,6 +2,7 @@ package spa_handler import ( "bytes" + "fmt" "io" "io/fs" "net/http" @@ -16,11 +17,11 @@ func tryToDeliverFile(file fs.File, path string, w http.ResponseWriter, r *http. http.Error(w, "can not read file", http.StatusInternalServerError) return } - modified := []byte{} + merge := bytes.NewBuffer([]byte{}) for _, a := range appender { - modified = append(modified, []byte(a)...) + merge.WriteString(a) } - modified = append(modified, content...) + newContent := strings.Replace(string(content), "", fmt.Sprintf("%s\n", merge.String()), 1) stats, statErr := file.Stat() if statErr != nil { @@ -33,7 +34,7 @@ func tryToDeliverFile(file fs.File, path string, w http.ResponseWriter, r *http. } contentType = getContentTypeDetail(contentType, stats) - fileSeeker := bytes.NewReader(modified) + fileSeeker := bytes.NewReader([]byte(newContent)) w.Header().Set("Content-Type", contentType) http.ServeContent(w, r, path, time.Now(), fileSeeker) } diff --git a/reloader.go b/reloader.go index 1f98633..1c34adc 100644 --- a/reloader.go +++ b/reloader.go @@ -9,8 +9,8 @@ import ( func clientScript(clientVersion string) string { return fmt.Sprintf(` - - `, clientVersion) }