fix: CSS files now have the correct MIME type

This commit is contained in:
PapaTutuWawa 2024-01-01 01:20:50 +01:00
parent 85bd71cff3
commit fc96bd8a5d

View File

@ -43,9 +43,9 @@ func serveFile(username, reponame, path, giteaUrl string, w http.ResponseWriter)
var mimeType string var mimeType string
var err error var err error
if found { if found {
log.Debugf("Returning %s from cache", path)
content = entry.(PageContentCache).Content content = entry.(PageContentCache).Content
mimeType = entry.(PageContentCache).mimeType mimeType = entry.(PageContentCache).mimeType
log.Debugf("Found page in cache with mimeType '%s'", mimeType)
} }
// We have to do the raw request manually because the Gitea SDK does not allow // We have to do the raw request manually because the Gitea SDK does not allow
@ -90,6 +90,13 @@ func serveFile(username, reponame, path, giteaUrl string, w http.ResponseWriter)
return return
} }
// Handle 404s early.
// TODO: Maybe allow delivering a 404.html instead?
if resp.StatusCode == 404 {
w.WriteHeader(404)
return
}
content, err = io.ReadAll(resp.Body) content, err = io.ReadAll(resp.Body)
if err != nil { if err != nil {
log.Errorf("Failed to get file %s/%s/%s (%s)", username, reponame, path, err) log.Errorf("Failed to get file %s/%s/%s (%s)", username, reponame, path, err)
@ -100,6 +107,7 @@ func serveFile(username, reponame, path, giteaUrl string, w http.ResponseWriter)
pathParts := strings.Split(path, ".") pathParts := strings.Split(path, ".")
ext := pathParts[len(pathParts)-1] ext := pathParts[len(pathParts)-1]
mimeType = mime.TypeByExtension("." + ext) mimeType = mime.TypeByExtension("." + ext)
log.Debugf("Returning MIME type '%s' for extension '%s", mimeType, ext)
now := time.Now() now := time.Now()
pageCache.Set( pageCache.Set(
@ -113,7 +121,7 @@ func serveFile(username, reponame, path, giteaUrl string, w http.ResponseWriter)
) )
log.Debugf("Page %s requested from Gitea and cached in memory at %v", path, now) log.Debugf("Page %s requested from Gitea and cached in memory at %v", path, now)
w.WriteHeader(200)
w.Header().Set("Content-Type", mimeType) w.Header().Set("Content-Type", mimeType)
w.WriteHeader(200)
w.Write(content) w.Write(content)
} }