우리는 Rails 'caches_action
방법을 Redis와 함께 사용하여 공통 페이지의 캐싱을 구현합니다. 매우 동적 인 사이트이므로 다른 URL 매개 변수가있는 페이지는 캐시에서 고유해야합니다 (예 : ?page=1
대 ?page=2
). 그러나 URL이 일치하는 한 콘텐츠를 캐시하여 여러 방문자에게 제공 할 수 있습니다.레일스 생성 링크에서 특정 매개 변수를 기본적으로 제외시킬 수 있습니까?
Google 트래픽의 상당 부분이 애드워즈 광고에서 나왔기 때문에 많은 사용자가 URL에 gclid 매개 변수로 페이지에 도착하여 캐싱이 쓸모 없게되었습니다. 나는 우리가 캐싱 된 HTML 내부 링크를 포함하기 때문에 우리의 웹 로그 분석 데이터가 꺼져 것을 알게 될 때까지,
caches_action :search,
:expires_in => 10.minutes,
:cache_path => Proc.new { |c| c.params.except('gclid') }
이 잠시 동안 큰 일 : 나는 고유 URL을 식별하는 데 사용되는 캐시 경로에서 GCLID를 제외하여이 문제를 해결했다 이전 방문에서 발생한 gclid 매개 변수를 사용합니다. 자동으로 생성 된 모든에서 gclid
를 제외 할 수있는 방법이있다 :
link_to 'some page', params.except('gclid')
내 질문은 :
그래서 이에 대한 해결책은 꽤 straightforward- 내가 같이 수동으로 gclid
을 제외해야 링크를 생성 할 때마다입니다 모래밭? 이 작업은 사이트 전체에서 수동으로 수행하지 않아도되므로 편리합니다.
아마도이 라인을 추가하여 원숭이 패치'link_to' 메소드를 만들 수 있습니다. – MurifoX
예, link_to를 패치하는 것에 대해 생각했습니다. 그러나 url_for와 잠재적으로 몇 가지 유사한 방법을 패치해야합니다. –