부분 캐싱은 많은 작업 없이 몇 가지 주요 페이지 속도 향상을 얻을 수 있는 좋은 방법입니다. 하지만 touch: true
를 잊어버린 경우 연결 중 하나에서 또는 템플릿 종속성이 제대로 작동하지 않으면 캐시된 부분이 업데이트되지 않습니다.
개발 환경은 일반적으로 캐싱이 비활성화된 상태에서 실행되기 때문에 스테이징 또는 프로덕션 환경에서만 이를 발견할 수 있습니다! 문제를 디버깅하려면 다음을 설정하여 개발 모드에서 문제를 재현해야 합니다.
config.action_controller.perform_caching = false
config/environments/development.rb
에서 true
으로 . 캐시 문제를 디버그해야 할 때마다 이 작업을 수행해야 하며 체크인하기 전에 다시 변경해야 한다는 것을 기억해야 합니다. 나는 그런 종류의 작업을 하는 것을 싫어합니다 , 따라서 새 프로젝트를 시작할 때 대신 다음과 같이 설정합니다.
config.action_controller.perform_caching = ENV['CACHING'] == 'true'
그렇게 하면
로 Rails 서버를 시작하여 필요할 때마다 캐싱을 활성화할 수 있습니다.CACHING=true rails server
rails server
만 실행 평소와 같이 캐싱이 비활성화된 상태로 실행됩니다.
구성 매개변수를 더 자주 조정하기 시작하면 하드코딩된 매개변수를 환경 변수로 바꾸는 이 패턴을 사용하면 많은 시간과 번거로움을 줄일 수 있습니다. 자신의 프로젝트에서 시도해 보세요!