比如下面这个资源包:
<?php namespace frontend\assets; use yii\web\AssetBundle; class AppAsset extends AssetBundle { public $sourcePath = '@frontend/web'; public $css = [ 'css/site.css', ]; public $js = []; public $depends = [ 'yii\web\YiiAsset', 'yii\bootstrap\BootstrapAsset', ]; }
当使用AppAsset::register($this);
注册这个资源包的时候,会将@frontend/web
整个目录复制到可以访问的assets
目录下。
$url = Yii::$app->assetManager->getBundle(AppAsset::className())->baseUrl; $this->registerCssFile($url . '/main.css'); echo Html::img($url . '/logo.png', ['title' => 'LOGO']);
list(,$url) = Yii::$app->assetManager->publish('@mdm/admin/assets'); $this->registerCssFile($url . '/main.css'); echo Html::img($url . '/logo.png', ['title' => 'LOGO']);
publish($path, $options = [])
方法将指定的目录或文件复制到一个web可以访问的位置,并返回一个数组,该数组有两个值:第一个值是该目录被复制后绝对路径,第二个值是相对路径,比如:
[ '\www\advanced\web\assets\d8412495', '/assets/d8412495' ];