2013-05-10 1 views
0

muti-sites wordpress를 nginx로 실행하고 Safari에서 테스트합니다 (Chrome은 괜찮습니다).wordpress 3.4.1 muti-sites 때로는 사파리에 시간에 이미지가 나타나지 않습니다.

매우 중요한 것은 관리자가 이미지를 업로드한다는 것입니다.

언젠가 어떤 이미지가 즉시 나타나지 않는 것을 발견했습니다. 전에 네트워크 문제에 관한 것이었지만, 오늘 규칙을 발견했습니다.

규칙이다

  1. 이 페이지에 입력 화상을 도시.
  2. 페이지를 새로 고침 (Command + R), 이미지가 사라졌습니다.
  3. 새로 고침, 이미지가 표시됩니다.
  4. 다시 한번, 사라졌습니다.
  5. 루프 ....

주의 사항 : 사라진 즉시 apear 아니에요 수단은 : 약 2 초 후, 이미지를로드 할 수있는 페이지를로드.

답변

0

페이지를 새로 고치면 사파리가 HTTP 헤더 HTTP_IF_NONE_MATCHHTTP_IF_MODIFIED_SINCE을 사용하여 이미지 요청을 서버로 보냅니다.

mutiple 사이트이므로 nginx는 요청을 ms-files.php로 다시 처리하여 처리합니다. ms-files.php는 이미지가 수정되지 않았 음을 감지하므로 내용이없는 응답 304입니다.

버그가 있습니다. ms-files.php는 응답이 304로 결정되기 전에 이미 Content-Length 헤더를 설정 했으므로 응답 헤더가 내용없이 304가되고 Content-Length > 0이됩니다. 그 후, 사파리가 다운되었습니다.

가에 의해 버그에 header('Content-Length: 0');을 추가 고정 WP를-포함/MS-files.php 라인 79

75 if (($client_last_modified && $client_etag) 
76  ? (($client_modified_timestamp >= $modified_timestamp) && ($client_etag == $etag)) 
77  : (($client_modified_timestamp >= $modified_timestamp) || ($client_etag == $etag)) 
78 ) { 
79  header('Content-Length: 0'); 
80  status_header(304); 
81  exit; 
82 } 
+0

여기 http://core.trac.wordpress.org/이보고 버그가 있습니까? 핵심 코드를 수정하는 것은 업그레이드시 겹쳐 쓰게되므로 권장하지 않지만 실제로 버그가있는 경우 패치해야합니다. – doublesharp

+0

내가 한 것, 감사합니다 ~ –

관련 문제