1

.htaccess以下を含むファイルをデバッグしようとしています。

<FilesMatch "\.(html|swf)$">
  <IfModule mod_headers.c>
      Header set Cache-Control "no-cache, public"
  </IfModule>
</FilesMatch>

<IfModule mod_expires.c>
    ExpiresActive On
    ExpiresDefault "access plus 1 month"
    ExpiresByType text/html                     "access plus 0 seconds"
    ExpiresByType application/x-shockwave-flash "access plus 1 month"
</IfModule>

Safari で表示される同じ Web ページに繰り返しアクセスすると、次のようになります。

名前=Wrapper.html、メソッド=GET、ステータス=200 (OK)、タイプ=text/html

名前=App.html、メソッド=GET、ステータス=200 (OK)、タイプ=application/x-shockwave-flash

Chrome の場合:

名前=Wrapper.html、メソッド=GET、ステータス=304 (変更なし)、タイプ=text/html

名前=App.html、メソッド=GET、ステータス=304 (変更なし)、タイプ=application/x-shockwave-flash

問題は、キャッシュから取得する必要があるときに Safari がサーバーからダウンロードするのに対し、Chrome はキャッシュから正しく取得することです。

Status=304では、サーバーから Safari にアクセスするにはどうすればよいでしょうか (Chrome で見られるように)。(これが根本的な原因だと思います。そうでない場合はお知らせください)

アップデート

キャッシュ ファイルを確認したところ、Safari は最初からダウンロードしたファイルをキャッシュに入れていないようです。理由がわからない。

4

1 に答える 1

1

これは、サーバーや htaccess ファイルとは関係ありません。Safari が送信するリクエストにはヘッダーが必要です。そうしないと、時間がリクエストに含まれていた時間よりも前のIf-Modified-Since場合、Apache は 304 で応答しません。Last-Modified

なぜ Safari がヘッダーを送信しないのか、またはヘッダーが時々発生するだけなのか、ブラウザーの設定がどこかに関係しているのかはわかりません。しかし、これが起こっているのはあなただけではありません

于 2013-10-31T21:12:26.427 に答える