summaryrefslogtreecommitdiffstats
path: root/commands
diff options
context:
space:
mode:
authorBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>2020-03-08 16:33:15 +0100
committerBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>2020-03-08 19:57:30 +0100
commit108314444b510bfc330ccac745dce7beccd52c91 (patch)
treed689af9dd1c838dd23e3a3b2cb78a65a601f4d9c /commands
parent51e178a6a28a3f305d89ebb489675743f80862ee (diff)
Add HTTP header support for the dev server
Fixes #7031
Diffstat (limited to 'commands')
-rw-r--r--commands/commandeer.go6
-rw-r--r--commands/server.go4
2 files changed, 9 insertions, 1 deletions
diff --git a/commands/commandeer.go b/commands/commandeer.go
index 3054ffb74..547bf8bf3 100644
--- a/commands/commandeer.go
+++ b/commands/commandeer.go
@@ -18,6 +18,8 @@ import (
"errors"
"sync"
+ hconfig "github.com/gohugoio/hugo/config"
+
"golang.org/x/sync/semaphore"
"io/ioutil"
@@ -58,7 +60,8 @@ type commandeerHugoState struct {
type commandeer struct {
*commandeerHugoState
- logger *loggers.Logger
+ logger *loggers.Logger
+ serverConfig *config.Server
// Currently only set when in "fast render mode". But it seems to
// be fast enough that we could maybe just add it for all server modes.
@@ -343,6 +346,7 @@ func (c *commandeer) loadConfig(mustHaveConfigFile, running bool) error {
cfg.Logger = logger
c.logger = logger
+ c.serverConfig = hconfig.DecodeServer(cfg.Cfg)
createMemFs := config.GetBool("renderToMemory")
diff --git a/commands/server.go b/commands/server.go
index 728847492..a22a7a69a 100644
--- a/commands/server.go
+++ b/commands/server.go
@@ -355,6 +355,10 @@ func (f *fileServer) createEndpoint(i int) (*http.ServeMux, string, string, erro
w.Header().Set("Pragma", "no-cache")
}
+ for _, header := range f.c.serverConfig.Match(r.RequestURI) {
+ w.Header().Set(header.Key, header.Value)
+ }
+
if f.c.fastRenderMode && f.c.buildErr == nil {
p := r.RequestURI
if strings.HasSuffix(p, "/") || strings.HasSuffix(p, "html") || strings.HasSuffix(p, "htm") {