From c2a5444b9eda51d6dc6a6c001cdbd540743734d6 Mon Sep 17 00:00:00 2001 From: Pacien TRAN-GIRARD Date: Sat, 22 Sep 2012 18:53:40 +0200 Subject: Manually serve files in order to set the Content-Type header correctly (for HTML and JSON files). --- src/ninjacloud.go | 27 +++++++++++++++------------ 1 file changed, 15 insertions(+), 12 deletions(-) diff --git a/src/ninjacloud.go b/src/ninjacloud.go index 235a9be..5f9274e 100644 --- a/src/ninjacloud.go +++ b/src/ninjacloud.go @@ -445,20 +445,23 @@ func fileHandler(w http.ResponseWriter, r *http.Request) { return } else { ext := filepath.Ext(p) - if ext == ".htm" || ext == ".html" { - file, err := readFile(p) - if err != nil { - log.Println(err) - w.WriteHeader(http.StatusInternalServerError) - return - } + switch ext { + case ".htm": + case ".html": w.Header().Set("Content-Type", "text/plain, charset=utf-8") - w.WriteHeader(http.StatusOK) - w.Write(file) + + case ".json": + w.Header().Set("Content-Type", "application/json") + } + file, err := readFile(p) + if err != nil { + log.Println(err) + w.WriteHeader(http.StatusInternalServerError) return - } else { - http.ServeFile(w, r, p) } + w.WriteHeader(http.StatusOK) + w.Write(file) + return } } } @@ -664,7 +667,7 @@ func main() { log.Println(err) return } - + err = createDir(projectsDir) if err != nil { log.Println(err) -- cgit v1.2.3