6

< 10 KB私が取り組んでいる Web サイトの単純な古い JPEG 画像 (それぞれ約 12 枚) が、強制フィードされているキャッシュ制御ヘッダーを取得しない理由がわかりません。.htaccess私が使用しているルールは、最新の HTML5 Boilerplate .htaccess ファイル (以下の関連セクション) に基づいています。奇妙なことに、サイトにはほぼ同じ量の PNG があり、そのうちの 2 つを除いて、キャッシュ制御ヘッダーは完全に機能します。

<IfModule mod_expires.c>
  ExpiresActive on

# Perhaps better to whitelist expires rules? Perhaps.
  ExpiresDefault                          "access plus 1 month"

...

# media: images, video, audio
  ExpiresByType image/gif                 "access plus 1 month"
  ExpiresByType image/png                 "access plus 1 month"
  ExpiresByType image/jpg                 "access plus 1 month"
  ExpiresByType image/jpeg                "access plus 1 month"

...

  <IfModule mod_headers.c>
    Header append Cache-Control "public"
  </IfModule>

</IfModule>

(省略記号は、余分なExpiresByTypeルール セクションが削除されたことを示します)

私は自分の/etc/apache2/apache2.confファイルからそこに含まれるほぼすべての conf ファイルに至るまで、適切な説明を見つけることができません。私もいじり、Pagesped と Chrome で何時間も監査しましたが、まだわかりません。

編集:.htaccess以下で説明するように、この Web サイトの Web ルートにはファイルが1 つしかありません。JPEG は MIME タイプでimage/jpeg正常に処理されていますが、キャッシュ制御ヘッダーが欠落しており、その理由がわかりません。

4

1 に答える 1

5

セクションに追加no-transformしましたがmod_headers、確かに、すべて期待どおりに機能します。これで、額から壁を壊すことができます。

  <IfModule mod_headers.c>
    Header append Cache-Control "public, no-transform"
  </IfModule>
于 2011-03-01T13:55:07.727 に答える