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で画像パスの指定がうまくいかない。
関連記事
-
SQLクエリーをログに出力する
SQLのクエリーをデバッグするには、Debug Kitを使用すればできますが、デバッグログと一緒に出したいのでやり方を調査してみました。 別々のログやビューでみるのもいいですが、秒単位で実行される処
-
テーブルからランダムにデータを取り出す(find)
CakePHPでテーブルから特定件数のレコードをランダムに取得するには以下のように指定するとできます。 $this->data = $this->Bulkdata->find( 'all',
-
selectボックスを実装
今まで、selectボックスのgroupを作成するのにSet::Combineを使用していましたが、意外と簡単にできることに気付いてしまったので、ご紹介。(自分だけ知らなかったことに気付いた と言った
-
Blowfishを使用してハッシュ化する
使用方法 Blowfishを採用してハッシュ化を行う場合、Securityクラスのhashメソッドを呼び出します。第2引数に'blowfish'を指定し、第3引数を指定しないもしくはfalseにしま
-
CakePHP 2.x インストール
現在まで私が商用・非商用にリリースしているCakePHPアプリケーションは全て1.3.xベースで作成しています。 まだまだロードマップ的には大丈夫そうですが、お客さん向けに納品しているアプリケーショ
-
ログローテーション
CakePHP 2.xではbootstrap.php内にあらかじめアプリケーションログの設定が書かれています。2.xで日付ごとにログファイルが切り替わるよう設定してみました。 日ごとにログを切り替え
-
多言語サイト向けに翻訳ファイルを使って翻訳を行う
CakePHPには、翻訳をビヘイビアを使用する方法と翻訳ファイルを使用する方法の2つがあるそうです。(他にもあるのかな?) 今回は、翻訳ファイルを使用して言語の切り替えを行い、その言語設定をCook
-
バリデーションエラーメッセージの取得
CakePHP 2.xになってバリデーションエラー時に返却されるメッセージのデータ形式が変更になったようです。1.3系では、ひとつのフィールドに対して返却されるメッセージは一つのルールのみですが、2.
-
hasOne アソシエーション
hasOneアソシエーションはテーブル間で1つのレコードに対して他のテーブルに紐付くレコードが1つの場合にjoinする場合に使用します。 CakePHPのドキュメントにならってUserモデルとP
-
RSSフィードの取得
コンロトーラ public function getrssfeed() { try { $newsItems = $this->Rss->read( 'http://
Comment
[…] 「CakePHP」「HTML」「minify」とかでググると、本家CakePHPブログが紹介してるこれとか日本語で紹介されてるこれとかこれとか引っかかるワケですが、 […]
[…] http://kwski.net/cakephp-2-x/1136/ […]