Asset クラス

asset クラスは、アセット (js、css、img) を収集し、グループ化し、表示するために役立つメソッドをまとめたクラスです。

設定

asset クラスのデフォルト設定は、fuel/core/config/asset.php ファイルで設定されています。 デフォルトの設定が有効になっています。あなたのアプリケーションの config ディレクトリに、同名の config ファイルを追加し、 変更したい値を設定することで、設定を上書きできます。 コアの設定を上書きしますが、上書きしたくないものは変更しません。

以下のグローバル設定値が定義できます。

パラメータ デフォルト 説明
paths array
array('assets/')
デフォルトのアセットのルートパス。末尾にスラッシュが必要。
css_dir string
'css/'
デフォルトの css フォルダ。末尾にスラッシュが必要。
js_dir string
'js/'
デフォルトの js フォルダ。末尾にスラッシュが必要。
img_dir string
'img/'
デフォルトの画像フォルダ。末尾にスラッシュが必要。
folders array
array(
	'css' => array(),
	'js'  => array(),
	'img' => array(),
),
アセットの種類に応じて、アセットを指定してください。
url string
\Config::get('base_url')
アセットのルートの URL。アセットをロードするとき、アセットのパスとアセット名が URL に付加される。
add_mtime bool
true
アセットの最終更新時刻を url に付加するかどうかを指定する。アセットのキャッシングの助けとなるので、使用を推奨する。
indent_level integer
1
生成される HTML をきれいに保つため、Asset クラスはタグをインデントできる。インデントのレベルを設定する。
indent_with string
"\t"
生成された HTML をインデントする文字列。デフォルトはタブ 1 つ。
auto_render bool
true
グループ名無しでアセットのメソッドを呼び出したとき、生成された HTML を返すかどうかを指定する。 false の場合、アセットはデフォルトグループに追加され、後でレンダリングされる。
fail_silently bool
false
true に設定すると、アセットファイルが見つからなかった場合に例外を返さない。 そのアセットは無視される。

アセットのパス

アセットのパスを定義する方法はいくつかあります。アセットの 'root' を定義するグローバルアセット検索パスを定義する。 アセットを探すとき、ロードするアセットに定義されているフォルダをパスに追加します。 複数のグローバル検索パスを使用する場合、同一のフォルダ構造にしなければなりません。

// 想定:
// - URL が "http://example.org/"
// - グローバル検索パスが "assets/"
// - img_dir が "img/"
// <img src="http://example.org/assets/img/icons/myicon.png" /> を返す
echo Asset::img('icons/myicon.png');

標準のフォルダ構造を好まない場合、あるいはアセットのパスが定義済みの既存の環境を維持する必要がある場合は、 Asset クラスは、サポートされるアセットの種類ごとに、 個別の検索フォルダを定義できます。

// 下記の設定の場合で
// 'folders' => array(
//	'css' => array('assets/css'),
//	'js'  => array('assets/js', 'global/js/'),
//	'img' => array('assets/img/', 'assets/icons'),
// ),
// 'assets/icons' にアイコンがある場合、
// <img src="http://example.org/assets/icons/myicon.png" /> を返す
echo Asset::img('myicon.png');

パスと検索フォルダは、add_path() メソッドを使用して、実行時に定義できます。

静的なアセット

アセット (の一部) がアプリケーションのドキュメントルートではなく、異なるホストを使用している場合は、 アセットをロードするのに、以下のテクニックが使えます。

// 個別に、アセット毎に
echo Asset::img('http://static.example.org/icons/myicon.png');

// 全てのセットに対して、アセット URL を 'http://static.example.org/' を設定する
echo Asset::img('icons/myicon.png');
この場合、検索パスは無視されます。