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

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

関連記事

Formヘルパーのinputタグのdiv/labelなどの設定

Formヘルパーのinputではデフォルトでは以下のようにdivで囲われて、labelが付与されて出力されます。 CSSのフレームワークなどであらかじめ決まったスタイルがある場合に便利に作られていま

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

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

RSSフィードの取得

コンロトーラ public function getrssfeed() { try { $newsItems = $this->Rss->read( 'http://

コントローラ内でバリデーション処理を呼び出す

CakePHPでは、saveメソッドの際にバリデーション処理も自動で行われますが、save処理と切り離してバリデーションを行うこともできます。このときは、save時と若干異なる処理体系になります。

no image

HttpSocketを使用してリクエスト送信

CakePHPには、Webサービスへのリクエスト送信のためのHttpSocketクラスが用意されています。 HttpSocket get HTTP GETリクエストを発行します。デモ H

no image

radioボタンを実装

Radioボタンの実装は、セレクトボックスとほぼ同じです。 個人的にはラジオボタンをすすんで使用することは少ないのですが、2択くらいの選択肢であれば非常に便利ですよね。 今回は、その実装方法 デモ

入力文字列の長さ(文字数)をバリデーション

CakePHP 2には、コアバリデーションに文字列の長さを検証する関数が用意されています。 文字列長(コア)バリデーション minLength - 最小文字数以上であること maxLengt

多言語サイト向けに翻訳ファイルを使って翻訳を行う

CakePHPには、翻訳をビヘイビアを使用する方法と翻訳ファイルを使用する方法の2つがあるそうです。(他にもあるのかな?) 今回は、翻訳ファイルを使用して言語の切り替えを行い、その言語設定をCook

バリデーションエラーメッセージの取得

CakePHP 2.xになってバリデーションエラー時に返却されるメッセージのデータ形式が変更になったようです。1.3系では、ひとつのフィールドに対して返却されるメッセージは一つのルールのみですが、2.

Js/Cssファイルの読み込みや出力する方法

CakePHPのHTMLヘルパーにはjsファイルやcssファイルを読み込むためのメソッドが用意されています。ファイルを読み込むのに加えて、出力先を複数指定できるようになっています。 また、インライン

Comment

[CakePHP2.x]Minify plugin for CakePHP | CodeLab技術ブログ へ返信する コメントをキャンセル

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

*

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

    PAGE TOP ↑