スポンサードリンク

CakePHP
CakePHP

CakePHPで動かしていると

どうもブラウザキャッシュの影響で

更新しても、変わっていないということがありました。

CakePHPでブラウザにキャッシュさせない方法です。

スポンサードリンク

ブラウザにキャッシュさせない方法

色々調べていたらCookbookに載ってました。

リクエストとレスポンスオブジェクト

以下のようにキャッシュさせたくないコントローラーのアクション内に記述します。

public function index() {
    $this->response->disableCache();
}

簡単にできるんですね。

コントローラー全体にかけたい場合はbeforeFilterに

サイト全体にかけたい場合はAppContorollerに書いてあげればいいですね。

ちなみにCakePHPじゃない場合も書いておきます。

HTMLに直接書く場合は

headタグ内に以下のように書きます。

<meta http-equiv="Pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">

PHPファイルの場合はheader関数を使います。

header( 'Expires: Sat, 26 Jul 1997 05:00:00 GMT' );
header( 'Last-Modified: ' . gmdate( 'D, d M Y H:i:s' ) . ' GMT' );
header( 'Cache-Control: no-store, no-cache, must-revalidate' );
header( 'Cache-Control: post-check=0, pre-check=0', false );
header( 'Pragma: no-cache' );

(参考)
キャッシュされないページをPHPで作る

スポンサードリンク