2011-12-31 3 views
1

내가 루비 레일에 웹 사이트가 캐시지고 유지합니다.인덱스 방법은

class DefinitionsController < ApplicationController 
    caches_page :index 
    def index 
    responds_to do |format| 
     format.json { render json: @something} 
    end 
    end 
end 

내가 myapp.host.com/definitions.json에 도착하면 내 json 데이터를 얻습니다. 내가 expire_page :action => :index를 사용하는 함수를 호출 할 때 그러나 나는 그것은 public 디렉토리에서 이전 JSON 파일을 제공 받고 유지, 데이터의 새로운 갱신을받지 않습니다. 웹 사이트의 또 다른 URL이 만료되었지만 정상적인 페이지 인 경우 신선한 URL이 표시됩니다.

내가 Nginx에와 승객을 사용하여 호스팅, 레일 3 사용합니다. 내가 rails server을 사용하여 실행하면 ok로 작동하므로 Nginx 또는 Passenger와 무언가가 있어야합니다.

expire 전화에 전화 format => :json 같은 내가해야 할 특별한 무언가가 있나요?

답변

1

나는 문제가 당신이 expire_page 캐시 된 내용의 형식 말하지 않은 것입니다 생각, 그래서 HTML을 가정합니다. 캐쉬 된 HTML 컨텐트가 없다는 것은 아무 것도하지 않습니다.

expire_page :action => :index, :format => 'json'을보십시오.

+1

이것은 실제로 트릭입니다. 그러나, 나는'expire_page'에 대한 일반적인 호출이 모든 포맷을 만료하지 않는 이유는 여전히 모르겠다. – Peterdk

+0

@Peterdk'expire_page'가 어떤 파일을 삭제해야하는지 알기 위해서는 포맷이 필요하다고 생각합니다. 당신의 요점은 여전히 ​​좋은 것입니다. 'expires_page'는 형식에 특화된 반면,'caches_page'는 형식에 맞지 않습니다. 레일즈 핵심 메일 링리스트에 대해 언급 할만한 가치가있을 것입니다. –

관련 문제