From b180477631555824a06293053e2b6e63c5f07361 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B8rn=20Erik=20Pedersen?= Date: Sat, 23 Sep 2017 17:08:48 +0200 Subject: [PATCH] Add liveReloadPort flag to server This makes live reloading behind a HTTPS proxy working, as in the example below using the service from https://ngrok.com: ``` hugo server -b https://ba6sdfe72.ngrok.io --appendPort=false --liveReloadPort=443 --navigateToChanged ``` Fixes #3882 --- commands/server.go | 7 +++++++ hugolib/site.go | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/commands/server.go b/commands/server.go index 98da568b4..b52e38c17 100644 --- a/commands/server.go +++ b/commands/server.go @@ -38,6 +38,7 @@ var ( serverAppend bool serverInterface string serverPort int + liveReloadPort int serverWatch bool noHTTPCache bool ) @@ -85,6 +86,7 @@ func init() { initHugoBuilderFlags(serverCmd) serverCmd.Flags().IntVarP(&serverPort, "port", "p", 1313, "port on which the server will listen") + serverCmd.Flags().IntVar(&liveReloadPort, "liveReloadPort", -1, "port for live reloading (i.e. 443 in HTTPS proxy situations)") serverCmd.Flags().StringVarP(&serverInterface, "bind", "", "127.0.0.1", "interface to which the server will bind") serverCmd.Flags().BoolVarP(&serverWatch, "watch", "w", true, "watch filesystem for changes and recreate as needed") serverCmd.Flags().BoolVar(&noHTTPCache, "noHTTPCache", false, "prevent HTTP caching") @@ -144,6 +146,11 @@ func server(cmd *cobra.Command, args []string) error { } c.Set("port", serverPort) + if liveReloadPort != -1 { + c.Set("liveReloadPort", liveReloadPort) + } else { + c.Set("liveReloadPort", serverPort) + } baseURL, err = fixURL(c.Cfg, baseURL) if err != nil { diff --git a/hugolib/site.go b/hugolib/site.go index b8898264a..e8b2422b1 100644 --- a/hugolib/site.go +++ b/hugolib/site.go @@ -1845,7 +1845,7 @@ func (s *Site) renderAndWritePage(name string, dest string, p *PageOutput, layou } if s.running() && s.Cfg.GetBool("watch") && !s.Cfg.GetBool("disableLiveReload") { - transformLinks = append(transformLinks, transform.LiveReloadInject(s.Cfg.GetInt("port"))) + transformLinks = append(transformLinks, transform.LiveReloadInject(s.Cfg.GetInt("liveReloadPort"))) } // For performance reasons we only inject the Hugo generator tag on the home page.