2013-11-15 2 views
0

무들의 인스턴스 (LMS)의 속도를 높이려고합니다. 나는 사용자가 가능성이 마지막 액세스 과정에 갈 것이라는 점을 확실히 알고, 그래서 나는 사전에 코스 페이지를 다운로드하는 링크 프리 페치를 사용하려고 해요 : 크롬에서Firefox에서 링크 프리 페칭 redownload 페이지

<link href='https://moodleexample.io/course/view.php?id=3' rel='prefetch' /> 
<link href='https://moodleexample.io/course/view.php?id=3' rel='prerender' /> 

, 그것은 바르게 작동합니다. 그러나 Firefox는 이상한 행동을 보여줍니다. 그것은 제대로 프리 페치를 사용하여 웹 페이지를 다운로드,하지만 난 코스 페이지를 요청할 때, 그것은 다시 다운로드 :

Wireshark dump of http requests

당신은 그것을 다시 코스 페이지를 요청하는 와이어 샤크 스크린 샷에서 볼 수

(시간 12.79에서) .

왜 이런 일이 발생합니까? 암호화되지 않은 무들의 Moodle에서 테스트 해본 결과 원치 않는 동일한 동작이 나타납니다.

답변

1

무들의 "잘못"이었습니다. 동적 페이지이므로 콘텐츠 캐싱을 차단하는 캐시 헤더를 넣습니다.

if ($http_x_moz ~ ^prefetch$) { 
    more_set_headers 'Cache-Control: private, max-age=60' 
    more_clear_headers 'Pragma'; 
} 

php 위치 : 파이어 폭스에서 X-moz: prefetch을 가져올 때의 Nginx의 힘을 사용

, 나는 그 헤더를 다시 썼다. 또한 조건부로 서버 측 브라우저 탐지를 사용하여 firefox에 대해서만 프리 페치 태그를 삽입했습니다.