2012-05-14 3 views
-1

한 컨트롤러의 경우, 레일 캐싱 로직 외부에서 생성 된 ETag 값을 사용하고 직접 304- 200 응답을 관리하고 싶습니다. ETag 헤더를 설정하지 않아도되는 것 같습니다 :레일 컨트롤러 응답에 커스텀 ETag 값을 어떻게 설정합니까?

response.etag = myEtag 
headers['ETag'] = myEtag 
render :text => myText, :etag => myEtag 

레일즈는 항상 자체 버전을 사용합니다.

저는 앱 전체 캐싱을 사용하지 못하게 할 수 있습니다.하지만이를 원하지 않습니다. 하나의 ActionController 하위 클래스에 대한 응답에서이를 무시하고 싶습니다. 등

+0

넌 할 수있어 "신선한"여기서 그 방법을 배치해야합니까, 여기 http://stackoverflow.com/questions/832035/rails-etags-vs-page-caching-file-cache –

답변

0

fresh_when 꽤 내 요구에 맞게하지 않았다 - 내 경우 솔루션이

def caching_allowed? 
    false 
end 

을 통해 캐싱을 거부 한 후 내 대답에 headers['ETag'] 멤버 단지 을 설정 - .etag의 설정 옵션으로 인해 레일즈가 MD5 All The Things에 영향을 미쳤습니다.

+0

질문을 자세히? – Hackeron

+0

이것은 영원히 전 이었지만, ActionController의 메소드를 오버라이드하고 있음을 기억하십시오. http://api.rubyonrails.org/v3.2.0/classes/ActionController/Caching.html#method-i-caching_allowed-3F –

관련 문제