mirror of
https://github.com/caddyserver/caddy.git
synced 2024-12-30 22:34:15 -05:00
parent
5336bc0fb6
commit
2615c9c524
1 changed files with 12 additions and 4 deletions
|
@ -356,7 +356,9 @@ func (fsrv *FileServer) ServeHTTP(w http.ResponseWriter, r *http.Request, next c
|
||||||
}
|
}
|
||||||
|
|
||||||
var file fs.File
|
var file fs.File
|
||||||
var etag string
|
|
||||||
|
// etag is usually unset, but if the user knows what they're doing, let them override it
|
||||||
|
etag := w.Header().Get("Etag")
|
||||||
|
|
||||||
// check for precompressed files
|
// check for precompressed files
|
||||||
for _, ae := range encode.AcceptedEncodings(r, fsrv.PrecompressedOrder) {
|
for _, ae := range encode.AcceptedEncodings(r, fsrv.PrecompressedOrder) {
|
||||||
|
@ -388,7 +390,9 @@ func (fsrv *FileServer) ServeHTTP(w http.ResponseWriter, r *http.Request, next c
|
||||||
// don't assign info = compressedInfo because sidecars are kind
|
// don't assign info = compressedInfo because sidecars are kind
|
||||||
// of transparent; however we do need to set the Etag:
|
// of transparent; however we do need to set the Etag:
|
||||||
// https://caddy.community/t/gzipped-sidecar-file-wrong-same-etag/16793
|
// https://caddy.community/t/gzipped-sidecar-file-wrong-same-etag/16793
|
||||||
etag = calculateEtag(compressedInfo)
|
if etag == "" {
|
||||||
|
etag = calculateEtag(compressedInfo)
|
||||||
|
}
|
||||||
|
|
||||||
break
|
break
|
||||||
}
|
}
|
||||||
|
@ -408,7 +412,9 @@ func (fsrv *FileServer) ServeHTTP(w http.ResponseWriter, r *http.Request, next c
|
||||||
}
|
}
|
||||||
defer file.Close()
|
defer file.Close()
|
||||||
|
|
||||||
etag = calculateEtag(info)
|
if etag == "" {
|
||||||
|
etag = calculateEtag(info)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// at this point, we're serving a file; Go std lib supports only
|
// at this point, we're serving a file; Go std lib supports only
|
||||||
|
@ -421,7 +427,9 @@ func (fsrv *FileServer) ServeHTTP(w http.ResponseWriter, r *http.Request, next c
|
||||||
|
|
||||||
// set the Etag - note that a conditional If-None-Match request is handled
|
// set the Etag - note that a conditional If-None-Match request is handled
|
||||||
// by http.ServeContent below, which checks against this Etag value
|
// by http.ServeContent below, which checks against this Etag value
|
||||||
w.Header().Set("Etag", etag)
|
if etag != "" {
|
||||||
|
w.Header().Set("Etag", etag)
|
||||||
|
}
|
||||||
|
|
||||||
if w.Header().Get("Content-Type") == "" {
|
if w.Header().Get("Content-Type") == "" {
|
||||||
mtyp := mime.TypeByExtension(filepath.Ext(filename))
|
mtyp := mime.TypeByExtension(filepath.Ext(filename))
|
||||||
|
|
Loading…
Reference in a new issue