aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorBjørn Erik Pedersen <[email protected]>2017-04-04 18:05:19 +0200
committerBjørn Erik Pedersen <[email protected]>2017-04-04 18:05:19 +0200
commita883948c4fa6d6de9ef2912709b42655c4cead83 (patch)
treeffc83042567246ab31ff302a9ee89877669d00c3
parentbc36d468ab56b5bcf01c3dc1478b1818dd17e4ff (diff)
downloadhugo-a883948c4fa6d6de9ef2912709b42655c4cead83.tar.gz
hugo-a883948c4fa6d6de9ef2912709b42655c4cead83.zip
Register all media types when in server mode
Fixes #3274
-rw-r--r--commands/server.go9
-rw-r--r--hugolib/site.go10
-rw-r--r--media/mediaType.go2
3 files changed, 14 insertions, 7 deletions
diff --git a/commands/server.go b/commands/server.go
index ae51d075d..0e719e17d 100644
--- a/commands/server.go
+++ b/commands/server.go
@@ -24,8 +24,6 @@ import (
"strings"
"time"
- "mime"
-
"github.com/spf13/afero"
"github.com/spf13/cobra"
"github.com/spf13/hugo/config"
@@ -95,9 +93,6 @@ func init() {
serverCmd.RunE = server
- mime.AddExtensionType(".json", "application/json; charset=utf-8")
- mime.AddExtensionType(".css", "text/css; charset=utf-8")
-
}
func server(cmd *cobra.Command, args []string) error {
@@ -168,6 +163,10 @@ func server(cmd *cobra.Command, args []string) error {
return err
}
+ for _, s := range Hugo.Sites {
+ s.RegisterMediaTypes()
+ }
+
// Watch runs its own server as part of the routine
if serverWatch {
watchDirs := c.getDirList()
diff --git a/hugolib/site.go b/hugolib/site.go
index 7b5d0d156..aefc8c940 100644
--- a/hugolib/site.go
+++ b/hugolib/site.go
@@ -18,6 +18,7 @@ import (
"fmt"
"html/template"
"io"
+ "mime"
"net/url"
"os"
"path/filepath"
@@ -610,6 +611,15 @@ type whatChanged struct {
other bool
}
+// RegisterMediaTypes will register the Site's media types in the mime
+// package, so it will behave correctly with Hugo's built-in server.
+func (s *Site) RegisterMediaTypes() {
+ for _, mt := range s.mediaTypesConfig {
+ // The last one will win if there are any duplicates.
+ mime.AddExtensionType("."+mt.Suffix, mt.Type()+"; charset=utf-8")
+ }
+}
+
// reBuild partially rebuilds a site given the filesystem events.
// It returns whetever the content source was changed.
func (s *Site) reProcess(events []fsnotify.Event) (whatChanged, error) {
diff --git a/media/mediaType.go b/media/mediaType.go
index bc54986be..f64f51253 100644
--- a/media/mediaType.go
+++ b/media/mediaType.go
@@ -177,5 +177,3 @@ func DecodeTypes(maps ...map[string]interface{}) (Types, error) {
return m, nil
}
-
-// TODO(bep) output mime.AddExtensionType