Add liveReloadPort flag to server
authorBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>
Sat, 23 Sep 2017 15:08:48 +0000 (17:08 +0200)
committerBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>
Sat, 23 Sep 2017 15:08:48 +0000 (17:08 +0200)
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
hugolib/site.go

index 98da568b42d11e267759b2d4444dcd513388a45c..b52e38c1737cc33b99ffa41c4b20c463ed707583 100644 (file)
@@ -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 {
index b8898264a94b6d3d8819aea5367602d06ed6efb5..e8b2422b1c7882599041ed19f4eaecaf2cf289fd 100644 (file)
@@ -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.