繁体   English   中英

如何使用 Grails CacheHeaders 插件设置响应头?

[英]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-TypeContent-Length标头不应以 304 的 HTTP 响应状态发送。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM