0

nginxでマルチサイトワードプレスを実行しており、サファリでテストしています(クロムは問題ありません)。

非常に重要なことは、画像が管理者によってアップロードされていることです。

画像がすぐに表示されないことがありました。以前はネットワーク障害についてのことでしたが、今日ルールを見つけました。

ルールは次のとおりです。

  1. ページに入る、画像が表示されています。
  2. ページを更新(Command + R)すると、画像が消えました。
  3. もう一度リフレッシュしてください。画像が表示されています。
  4. またしても、消えました。
  5. ループ....

注: 消えたということは、すぐに表示されないということです: ページをロードしてから約 2 秒後に、画像をロードできました。

4

1 に答える 1

0

ページを更新すると、safari は HTTP ヘッダーHTTP_IF_NONE_MATCHHTTP_IF_MODIFIED_SINCE.

これは複数のサイトであるため、nginx はリクエストを ms-files.php に書き換えて処理します。ms-files.php は、画像が変更されていないことを検出したため、コンテンツのない応答 304 です。

バグは、ms-files.php がContent-Length応答 304 を決定する前に既にヘッダーを設定しているため、応答ヘッダーがコンテンツなしで 304 になり、Content-Length > 0. その後、サファリはダウンしました。

header( 'Content-Length: 0' );wp-includes/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 }
于 2013-05-10T11:32:50.443 に答える