[英]How to set Response Headers with Grails CacheHeaders Plugin?
我將 Grails 2.4.4 與Cache Headers Plugin 一起使用。
這是我使用的標簽:
withCacheHeaders {
etag {
"${objectType}-${lastModifiedDateTime}-${width}-${objectId}".encodeAsSHA1()
}
delegate.lastModified {
lastModifiedDate ?: 0
}
generate {
response.setContentType(ImageService.getMimeTypeFromFileName(fullFileName))
response.setHeader("Content-disposition", "filename=\"${fullFileName}\"")
response.setContentLength(imageBytes?.size())
response.outputStream << imageBytes
}
} // end withCacheHeaders
t 工作正常,但事實證明我設置的響應標頭不是響應的一部分。 當我不使用插件時,它們設置得很好。
以下是設置的標題:
未設置的標頭是聲明的標頭:
response.setContentType(ImageService.getMimeTypeFromFileName(fullFileName))
response.setHeader("Content-disposition", "filename=\"${fullFileName}\"")
response.setContentLength(imageBytes?.size())
即,mime 類型、文件名、內容長度。
如何使用 Grails CacheHeaders 插件設置響應頭?
未設置這些標頭的原因是設計使然。 不是插件的設計,而是 HTTP。 根據RFC2616 Content-Type
和Content-Length
標頭不應以 304 的 HTTP 響應狀態發送。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.