CSS/JSをひとまとめにして軽量化するプラグイン「Minify plugin for CakePHP」

「Minify plugin for CakePHP」は、インクルードするCSSもしくはJSファイルをひとまとめにしてキャッシュ化してくれるプラグインです。

導入

  1. ダウンロード・解凍して、「Minify」にリネームしてapp/Plugin下に配置

    app/Plugin/Minify
  2. プラグインをロード

    // app/Config/bootstrap.php
    CakePlugin::load( array( 'Minify' => array( 'routes' => true)));
    
  3. 設定

    // app/Config/core.php
    Configure::write( 'MinifyAsset', true);
    
  4. 使用するコントローラにヘルパーを指定 (全てのコントローラで使用する場合は、AppControllerで指定)

    // app/Contoller/AppController.php
    class AppController extends Controller {
        var $helpers = array( 'Minify.Minify');
    }
    
  5. ビューに読み込む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'));
    
  6. app/tmp/cache下にminifyディレクトリを作成
    minifyディレクトリのパーミッションを読み込み・書き込み可能にする必要があります。

    app/tmp/cache/minify
    

400 Bad requestへの対処

と、ここまではほとんどチュートリアルのコピペなんですが、

とエラーになってしまいます。

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で画像パスの指定がうまくいかない。

  • このエントリーをはてなブックマークに追加

関連記事

アップロードファイルのバリデーションルール

CakePHP 2.2や2.3になってファイルアップロードに対するルールがコアバリデーションに追加されているようで、まとめてみました。 コアバリデーション 関連しそうなルールは以下の4つの

独自のバリデーションルールを作成

CakePHPで組み込みバリデーションルールをつくる方法は、正規表現を定義する方法と独自メソッドを定義する方法の2つがあるようです。 参考 Custom Validation Rules 正規

ユーザ登録(仮登録・メール・本登録)

以前1.3版で投稿した「ユーザ登録」処理の2.x版を作成しました。フローは同じで以下のようにします。 1. メールアドレス・パスワードでユーザ登録 2. この時点では仮登録として、本登録用のU

FormヘルパーのMagicOption (マジックオプション) 

Formヘルパーでは、「フィールド名」,「テーブルカラムのデータ型」もしくはモデルの「バリデーション設定」によりフォーム要素を決定したり、自動で属性を付与する「マジックオプション」と呼ばれるものがある

数値系バリデーション

CakePHP 2になっていくつか数値用バリデーションルールが追加されています。 数値用 (コア)バリデーション decimal - 十進数であること numeric - 数値であること

selectボックスを実装

今まで、selectボックスのgroupを作成するのにSet::Combineを使用していましたが、意外と簡単にできることに気付いてしまったので、ご紹介。(自分だけ知らなかったことに気付いた と言った

CakeEmailでメール送信(@gmail)

CakePHP 2になって追加されたクラスCakeEmailがシンプルに使えます。これを使用してメール送信を行う処理を実装してみました。 CakeEmailクラスの読み込み /app/Config

SQLクエリーをログに出力する

SQLのクエリーをデバッグするには、Debug Kitを使用すればできますが、デバッグログと一緒に出したいのでやり方を調査してみました。 別々のログやビューでみるのもいいですが、秒単位で実行される処

日付・時間のバリデーション

日付や時刻に関するバリデーションは以下のルールがビルトインされています。 date 日付 time 時刻 datetime 日時 (m:「月」を数字表記 / M:「月」を英語表記)

Markdown Plugin

「Markdown CakePHP Plugin」は、MarkDown書式をレンダリングしてくれるビューヘルパーです。MarkDownについて勉強しているうちに出会ったので試し打ちです。 ダウンロー

Comment

Message

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

*

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

    PAGE TOP ↑