2015-01-16 3 views
1

Grails 2.4.4를 Cache Headers Plugin과 함께 사용하고 있습니다. 여기 Grails CacheHeaders 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 형식, 파일 이름, 콘텐츠 길이 : 사람이 함께 선언 설정되지 않은

enter image description here

헤더를 다음과 같습니다

이 설정되어있는 헤더입니다 .

Grails CacheHeaders Plugin으로 응답 헤더를 설정하는 방법은 무엇입니까?

+0

올바르게 설정되지 않은 응답 헤더는 무엇입니까? 귀하의 질문에서 명확하지 않습니다. –

+0

@JoshuaMoore 질문을 업데이트했습니다. – confile

답변

1

이러한 헤더가 설정되지 않은 이유는 의도적으로 설계된 것입니다. 플러그인이 아닌 HTTP 디자인. RFC2616에 따르면 콘텐츠 형식 및 콘텐츠 길이 헤더는 HTTP 응답 상태 304와 함께 보내지 않아야합니다.