【问题标题】:How to set Response Headers with Grails CacheHeaders Plugin?如何使用 Grails CacheHeaders 插件设置响应标头?
【发布时间】:2015-01-16 00:44:07
【问题描述】:

我正在使用带有Cache Headers Plugin 的 Grails 2.4.4。

这是我使用的标签:

  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 插件设置响应头?

【问题讨论】:

  • 哪些响应标头设置不正确?从你的问题看不清楚。
  • @JoshuaMoore 我更新了我的问题。

标签: html grails groovy httprequest grails-2.0


【解决方案1】:

这些标头未设置的原因是设计使然。不是插件的设计,而是 HTTP。根据RFC2616 Content-TypeContent-Length 标头不应以304的HTTP响应状态发送。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-08-02
    • 1970-01-01
    • 1970-01-01
    • 2014-11-09
    • 2018-11-09
    • 1970-01-01
    相关资源
    最近更新 更多