set Range header for precompressed static files to force Content Length header to appear

precompressed-cl
WeidiDeng 2025-05-29 09:27:16 +08:00
parent a76d005a94
commit 88d7a3ac02
No known key found for this signature in database
GPG Key ID: 25F87CE1741EC7CD
1 changed files with 8 additions and 1 deletions

View File

@ -455,7 +455,14 @@ func (fsrv *FileServer) ServeHTTP(w http.ResponseWriter, r *http.Request, next c
}
defer file.Close()
respHeader.Set("Content-Encoding", ae)
respHeader.Del("Accept-Ranges")
// stdlib won't set Content-Length if Content-Encoding is set.
// set Range header if it's not present will force Content-Length to be set
if r.Header.Get("Range") == "" {
r.Header.Set("Range", "bytes=0-")
// remove this header, because it is not part of the request
defer r.Header.Del("Range")
}
// try to get the etag from pre computed files if an etag suffix list was provided
if etag == "" && fsrv.EtagFileExtensions != nil {