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

时间:2015-01-16 00:44:07

标签: html grails groovy httprequest grails-2.0

我正在使用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工作正常但事实证明我设置的响应头不是响应的一部分。当我不使用插件时,它们完美地设置了。

以下是设置的标题:

enter image description here

未设置的标题是声明的标题:

response.setContentType(ImageService.getMimeTypeFromFileName(fullFileName))
response.setHeader("Content-disposition", "filename=\"${fullFileName}\"")
response.setContentLength(imageBytes?.size())

即,mime类型,文件名,内容长度。

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

1 个答案:

答案 0 :(得分:1)

这些标头未设置的原因是设计原因。不是设计插件而是HTTP。根据{{​​3}}内容类型和内容长度标头不应以HTTP响应状态304发送。