概要
デフォルトのままだとAssetクラスで扱う素材は、ドキュメントルートから1階層さがった下記のパスとなリます。
- public/assets/css/
- public/assets/img/
- public/assets/js/
csss, img, jsをドキュメントルート直下に配置した場合、Assetクラスがそのままでは使えないようなので、調整してみる。
Asset設定ファイルを修正
pathsを追加する。
ただし、ドキュメントルートからのパスなので、空文字をセット。
fule/app/config/asset.php
<?php
return array(
'paths' => array(''),
'add_mtime' => true,
'fail_silently' => false
);
コントローラを作って実行してみる
fuel/app/classes/controller/asset.php
<?php
/**
* Smartyサンプル
*
* @package app
* @extends Controller
*/
class Controller_Asset extends Controller
{
/**
* Smartyテンプレートのテスト
*
* @access public
* @return Response
*/
public function action_index()
{
// CSSの読み込み(linkタグ生成)
echo htmlspecialchars(Asset::css('bootstrap.css'));
echo '<br>';
// JSの読み込み(scriptタグ生成)
echo htmlspecialchars(Asset::js('bootstrap.js'));
echo '<br>';
// 画像の読み込み(imgタグ生成)
echo htmlspecialchars(Asset::img('icon.jpg'));
echo '<br>';
}
}
テストしてみる
下記のように表示されたので成功のようです。
www.example.com
<link type="text/css" rel="stylesheet" href="http://www.example.com/css/bootstrap.css?1502024558" />
<script type="text/javascript" src="http://www.example.com/js/bootstrap.js?1502024558"></script>
<img src="http://www.example.com/img/icon.jpg?1342323155" alt="" />
以上。