문제

배포 될 때 또는 배포가 발생하기 전에 로컬로 캐시 된 HTML을 구축하여 모든 페이지 캐시 된 HTML을 구축하여 레일 앱의 페이지 캐시를 "미리화"할 플러그인 또는 Capistrano 레시피가 있는지 궁금합니다.

나는 많은 정적 사이트가 크게 바뀌지 않는 일부 정적 사이트가 있으며, 한 방문자가 사이트를 치도록 요구하는 대신 HTML이 이미 작성된 경우 더 빨리 실행됩니다.

이것을 직접 만들기보다는 (쉬운 것처럼 보이지만 우선 순위가 낮습니다) 이미 존재합니까?

도움이 되었습니까?

해결책

사이트의 모든 주요 영역을 확인하는 통합 테스트를 설정했습니다 (총 수백 페이지). 그들은 데이터를 변경하는 일을하지 않습니다. 페이지와 양식을 철회하십시오.

제작 인스턴스를 배포 할 때 현재 실행되지는 않지만 이제는 언급합니다. 실제로 좋은 생각 일 수 있습니다.

또 다른 대안은 사이트 맵에 나타나는 모든 페이지를 가져 오는 것입니다 (아마도 필요한 경우). 보석 / 레이크 스크립트를 작성하는 것은 정말 쉬워야합니다.

다른 팁

당신은 사용할 수 있습니다 wget 또는 사이트를 거부하는 다른 프로그램. 실제로 이러한 종류의 시나리오는 수동 페이지의 용도 중 하나로 언급됩니다.

이 옵션은 WGET에 다운로드 한 후 다운로드 한 모든 파일을 삭제하도록 지시합니다. 프록시를 통해 인기있는 페이지를 사전 가져 오는 데 유용합니다.

   wget -r -nd --delete-after http://whatever.com/~popular/page/

-r 옵션은 재귀 적으로 검색하고 -nd를 검색하여 디렉토리를 만들지 않는 것입니다.

매일 밤 내 페이지 캐시 된 사이트 맵을 새로 고치기 위해 이와 같은 레이크 작업을 사용합니다.

 require 'action_controller/integration'
 ActionController::Base::expire_page("/sitemap.xml")   
 app = ActionController::Integration::Session.new
 app.host = "notexample.com"
 app.get("/sitemap.xml")

보다 http://gist.github.com/122738

이 방법 (일반적으로 오후 10시 태평양에서 시작하여 동부 시간 오전 6시에 종료 할 수있는 Cron 작업)이 사이트를 적재 할 수있는 좋은 방법입니다.

확인하십시오 Spider_Test Rails 플러그인 테스트에서이를 수행하는 간단한 방법.

위의 wget을 사용하려면 -level =,-no-parent,-wait = seconds 및 -waitretry = secss 옵션을 추가하여로드를 스로틀하고 로그고 캡처 할 수 있습니다. 진단 또는 분석에 대한 헤더 응답 (원하는 경우 /TMP에서 경로 변경) :

wget -r --level=5 --no-parent --delete-after \
  --wait=2 --waitretry=10  \
  --server-response        \
  --append-output=/tmp/spidering-`date "+%Y%m%d"`.log
  'http://whatever.com/~popular/page/'
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top