2011-03-13 4 views
3

나는 잘 작동하는 레일 블로그 앱을 가지고 있습니다. 그러나 캐싱에 대한 실험을했는데 이전 버전으로 되 돌렸을지라도 여기에는 여전히 잘못된 것이 있습니다.레일 캐싱 문제가 있습니까?

서버 로그에 데이터베이스가 표시되지 않으므로 모든 페이지가 캐시에 있거나 캐시 캐시에있는 것처럼 보입니다.

해결 방법에 대한 단서가 있습니까? 감사합니다.

답변

6

문제는 아마이 같은 페이지 캐싱을 사용하고 있다는 점이다 :이 실제로 공개/디렉토리에 products.html라는 파일을 생성, 그래서 심지어 때리는 대신 레일이 파일은 스택

class ProductsController 
    caches_page :index 
    def index 
    @products = Product.all 
    end 
end 

렌더링. 파일이 서버에 저장되어 있기 때문에 브라우저 캐시를 지우지 않아도 문제가 해결되지 않습니다. 이 캐시를 만료시키는 데는 두 가지 방법이 있습니다.

class ProductsController 
    def clear 
    expire_page :action => :index 
    end 
end 

이 단순히 들이게 제거하는 것입니다 할 수있는 두 번째 방법 :

첫 번째 캐시를 지울 때마다 해당 작업을 캐시를 삭제하는 작업을 만든 다음 호출하는 것입니다 (bash) 파일 :

rm public/products.html 

페이지 캐싱이 이런 이유로 혼란 스럽습니다. 페이지가 실제로 캐시되는시기와 저장되는 위치를 알기는 어렵습니다.

P.S : 당신은 당신이 명령을 사용하여 전체 memcached를 cahce 또는 메모리 캐시를 지울 수 있습니다 페이지 캐싱을 사용하지 않은 경우 :

Rails.cache.clear 
+1

파일이 공개 디렉토리에 저장되었다가, 그게 문제였다. 많은 감사합니다! – silkwormy

관련 문제