diff --git a/commands/hugo.go b/commands/hugo.go index cce37a5f9..e53804f1c 100644 --- a/commands/hugo.go +++ b/commands/hugo.go @@ -358,7 +358,7 @@ func NewWatcher(port int) error { continue } - isstatic := strings.HasPrefix(ev.Name, helpers.AbsPathify(viper.GetString("StaticDir"))) || strings.HasPrefix(ev.Name, helpers.AbsPathify("themes/"+viper.GetString("theme"))+"/static/") + isstatic := strings.HasPrefix(ev.Name, helpers.GetStaticDirPath()) || strings.HasPrefix(ev.Name, helpers.GetThemesDirPath()) static_changed = static_changed || isstatic dynamic_changed = dynamic_changed || !isstatic diff --git a/helpers/path.go b/helpers/path.go index 3351e0265..7965a6ada 100644 --- a/helpers/path.go +++ b/helpers/path.go @@ -174,9 +174,17 @@ func AbsPathify(inPath string) string { return filepath.Clean(filepath.Join(viper.GetString("WorkingDir"), inPath)) } +func GetStaticDirPath() string { + return AbsPathify(viper.GetString("StaticDir")) +} + +func GetThemesDirPath() string { + return AbsPathify(filepath.Join("themes", viper.GetString("theme"), "static")) +} + func MakeStaticPathRelative(inPath string) (string, error) { - staticDir := AbsPathify(viper.GetString("StaticDir")) - themeStaticDir := AbsPathify("themes/"+viper.GetString("theme")) + "/static/" + staticDir := GetStaticDirPath() + themeStaticDir := GetThemesDirPath() return MakePathRelative(inPath, staticDir, themeStaticDir) } diff --git a/livereload/livereload.go b/livereload/livereload.go index 1b1546158..a47a7b687 100644 --- a/livereload/livereload.go +++ b/livereload/livereload.go @@ -15,6 +15,7 @@ package livereload import ( "net/http" + "strings" "github.com/gorilla/websocket" ) @@ -44,7 +45,8 @@ func ForceRefresh() { func RefreshPath(s string) { // Tell livereload a file has changed - will force a hard refresh if not CSS or an image - wsHub.broadcast <- []byte(`{"command":"reload","path":"` + s + "\"" + `,"originalPath":"","liveCSS":true,"liveImg":true}`) + url_path := strings.Replace(s, "\\", "/", -1) // If path has backslashes on Windows, make path work for URL + wsHub.broadcast <- []byte(`{"command":"reload","path":"` + url_path + "\"" + `,"originalPath":"","liveCSS":true,"liveImg":true}`) } func ServeJS(w http.ResponseWriter, r *http.Request) {