mirror of
https://github.com/caddyserver/caddy.git
synced 2024-12-27 06:03:48 +03: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 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
|
||||
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
|
||||
// of transparent; however we do need to set the Etag:
|
||||
// https://caddy.community/t/gzipped-sidecar-file-wrong-same-etag/16793
|
||||
etag = calculateEtag(compressedInfo)
|
||||
if etag == "" {
|
||||
etag = calculateEtag(compressedInfo)
|
||||
}
|
||||
|
||||
break
|
||||
}
|
||||
|
@ -408,7 +412,9 @@ func (fsrv *FileServer) ServeHTTP(w http.ResponseWriter, r *http.Request, next c
|
|||
}
|
||||
defer file.Close()
|
||||
|
||||
etag = calculateEtag(info)
|
||||
if etag == "" {
|
||||
etag = calculateEtag(info)
|
||||
}
|
||||
}
|
||||
|
||||
// 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
|
||||
// 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") == "" {
|
||||
mtyp := mime.TypeByExtension(filepath.Ext(filename))
|
||||
|
|
Loading…
Reference in a new issue