Last-modified: 2011-12-26 (月) 01:24:44
Pukiwiki/画像をキャッシュさせたい

概要

レスポンスを向上させるために、画像を一定期間キャッシュさせたいと思います。
ApacheのExpiresヘッダ設定を行っても、index.php?hoge&src=huga.pngなどで表示している画像には効かなかったので(設定次第では上手くいくのかもしれませんが)、pukiwiki側を修正することにしました。

方法

  1. plugin/ref.inc.phpを開きます。
    plugin_ref_actionの末尾で、Cache-Control HTTPヘッダの生成を追加します。
      1
      2
      3
      4
      5
      6
      7
      8
      9
     10
     11
     12
    
    <?php function plugin_ref_action()
     
    [途中省略・・・]
     
    // Output
    pkwk_common_headers();
    header('Content-Disposition: inline; filename="' . $filename . '"');
    header('Content-Length: ' . $size);
    header('Content-Type: '   . $type);
    // アクセスの30日後に期限が切れるようにする
    header('Cache-control: private, max-age=2700000');
    @readfile($ref);
    exit; ?>

確認

  1. YSlowを起動します。
    WS000001.PNG
  2. [Components]タブに移動し、index.php?hoge&src=huga.pngのパターンで表示する画像行を表示します。
    [EXPRESS]欄を確認し、期間が表示されていれば成功です。

検証時の環境

参考