テストの目的で、Apache構成にこれがあります。
<Directory "/home/http">
...
<FilesMatch "\.(html|htm)$">
Header unset Etag
Header set Cache-control "max-age=0, no-cache"
</FilesMatch>
<FilesMatch "\.(jpg|jpeg|gif|png|js|css)$">
Header unset Etag
Header set Cache-control "public, max-age=10"
</FilesMatch>
</Directory>
これは基本的に、静的アセットを10秒間持続するキャッシュを持つように設定することを意味します。繰り返しますが、これはテストとデモンストレーションの目的です。
ファイルに直接移動してテストします
$ wget -O - --save-headers localhost/mod_pagespeed_example/images/Puzzle.jpg
Cache-control: public, max-age=10
これは正常に動作します。しかし、mod_pagespeedとextend_cacheを有効にしてページをロードしようとしています
$wget -O - --save-headers localhost/mod_pagespeed_example/extend_cache.html?ModPagespeed=on&ModPagespeedFilters=extend_cache
<img src="images/Puzzle.jpg"/>
$wget -O - --save-headers localhost/mod_pagespeed_example/extend_cache.html?ModPagespeed=on&ModPagespeedFilters=extend_cache
<img src="http://localhost/mod_pagespeed_example/images/xPuzzle.jpg.pagespeed.ic.hgbHsZe0IN.jpg"/>
これはすべて元気でダンディです。最初のリクエストは、情報をキャッシュにロードする必要があるため機能しませんが、そこからimgタグのsrcがキャッシュされたハッシュバージョンに正しく置き換えられます。
ただし、これはmax-ageまでしか持続しません。したがって、10秒に設定すると、を指し続けますが、10秒後に再びhttp://localhost/mod_pagespeed_example/images/xPuzzle.jpg.pagespeed.ic.hgbHsZe0IN.jpg
戻り、その時点でキャッシュされたバージョンに戻ります。images/Puzzle.jpg
これは予想される動作ですか?pagespeedはmax-ageの後にハッシュをチェックし、それが同じであれば、元の値に戻すことを気にせず、代わりにキャッシュされたファイルを提供し続けると思います。
これはやや心配です。max-ageをもっと便利なもの(たとえば60分)に設定すると、これらのアセットファイルを引き続き更新し、更新がタイムリーに表示されるようになります。ただし、ユーザーが1日に1回サイトにアクセスした場合、それは最大年齢を超えており、キャッシュされたバージョンではなく、常に元のファイルが提供されます。