CSS/JSをひとまとめにして軽量化するプラグイン「Minify plugin for CakePHP」
「Minify plugin for CakePHP」は、インクルードするCSSもしくはJSファイルをひとまとめにしてキャッシュ化してくれるプラグインです。
導入
-
ダウンロード・解凍して、「Minify」にリネームしてapp/Plugin下に配置
app/Plugin/Minify
-
プラグインをロード
// app/Config/bootstrap.php CakePlugin::load( array( 'Minify' => array( 'routes' => true)));
-
設定
// app/Config/core.php Configure::write( 'MinifyAsset', true);
-
使用するコントローラにヘルパーを指定 (全てのコントローラで使用する場合は、AppControllerで指定)
// app/Contoller/AppController.php class AppController extends Controller { var $helpers = array( 'Minify.Minify'); } -
ビューに読み込むCSSやJSを指定する。ひとまとめにしたいCSS(JS)を配列で指定していきます。
// CSS // 例:css/bootstrap.cssとcss/bootstrap-responsive.cssをひとまとめにする echo $this->Minify->css( array( 'bootstrap', 'bootstrap-responsive')); // JS // 例:js/jquery.jsとjs/jquery-ui.jsをひとまとめにする echo $this->Minify->script( array( 'jquery', 'jquery-ui'));
-
app/tmp/cache下にminifyディレクトリを作成
minifyディレクトリのパーミッションを読み込み・書き込み可能にする必要があります。app/tmp/cache/minify
400 Bad requestへの対処
と、ここまではほとんどチュートリアルのコピペなんですが、
Please see http://code.google.com/p/minify/wiki/Debugging.
とエラーになってしまいます。
Cakephp -Minify 400 Bad request
を参考に以下のファイルを編集すると動作するようになります。
// app/Plugin/Minify/View/Helper/MinifyHelper.php (77行目)
// array_push($files, substr($this->assetUrl($asset, $options), 1));
array_push($files, mb_substr($this->assetUrl($asset, $options), mb_strlen($this->request->webroot)));
さらに調査
サブディレクトリ構成の場合、CSSで画像パスの指定がうまくいかない。
関連記事
-
-
パス定数と変更方法やURLの取得
CakePHPは基本的にはディレクトリそのまま配置することで構築が可能ではありますが、設定パスを変更することでセキュリティに考慮した構成にすることや運用性をもたせたものにすることが可能になります。
-
-
selectボックスを実装
今まで、selectボックスのgroupを作成するのにSet::Combineを使用していましたが、意外と簡単にできることに気付いてしまったので、ご紹介。(自分だけ知らなかったことに気付いた と言った
-
-
SQLクエリーをログに出力する
SQLのクエリーをデバッグするには、Debug Kitを使用すればできますが、デバッグログと一緒に出したいのでやり方を調査してみました。 別々のログやビューでみるのもいいですが、秒単位で実行される処
-
-
ハッシュ関数の選択とハッシュ化処理
CakePHPでは、ログイン時にはpasswordを自動的にハッシュ化して認証を行ってくれますが、そのパスワードを登録する際は、明示的にハッシュ化する必要があります。 ハッシュ関数の選択 ハッ
-
-
Cookieログイン
今回は、ログイン画面でよくみかけるクッキーログインの機能を使ってみます。 CakePHPには、Cookieコンポーネントがあります。(PHPのsetcookieメソッドのラッパー)メソッドはwr
-
-
Js/Cssファイルの読み込みや出力する方法
CakePHPのHTMLヘルパーにはjsファイルやcssファイルを読み込むためのメソッドが用意されています。ファイルを読み込むのに加えて、出力先を複数指定できるようになっています。 また、インライン
-
-
数値系バリデーション
CakePHP 2になっていくつか数値用バリデーションルールが追加されています。 数値用 (コア)バリデーション decimal - 十進数であること numeric - 数値であること
-
-
checkボックスを実装
selectボックスに引き続いてcheckボックスの実装方法をおさらいしてみます。 コードは、CakePHP 2と1.3両方で実装可能です。デモ モデルは、こちらも以下 CREATE TA
-
-
アップロードファイルのバリデーションルール
CakePHP 2.2や2.3になってファイルアップロードに対するルールがコアバリデーションに追加されているようで、まとめてみました。 コアバリデーション 関連しそうなルールは以下の4つの
-
-
CakePHP インストール時エラーの対処
CakePHPインストール時に出くわすであろうエラーの原因と対処方法についてまとめてみました。前提として、WebサーバはApache、データベースはMySQLとしています。 Timezone未設


Comment
[…] 「CakePHP」「HTML」「minify」とかでググると、本家CakePHPブログが紹介してるこれとか日本語で紹介されてるこれとかこれとか引っかかるワケですが、 […]
[…] http://kwski.net/cakephp-2-x/1136/ […]