簡體   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