利用 assets 资源控制器,按需加载css、js样式 [ 2.0 版本 ]
新接触yii,对yii的样式如何在页面中引用,产生了疑问,通过几个帖子得知了assets这个神奇的东西,如果你也遇到了这样的疑问,以前台为例,请看如下代码:
这是目录结构
frontend/ 前台目录
assets/ 资源控制器
配置文件
config/ 包含应用配置及其它配置
AppAsset.php具体内容如下:
<?php
namespace frontend\assets;
use yii\web\AssetBundle;
class AppAsset extends AssetBundle
{
public $basePath = '@webroot';
public $baseUrl = '@web';
public $css = [
'css/font-awesome/css/font-awesome.min.css',
'css/site.css',
];
public $js = [
'js/site.js',
];
public $depends = [//依赖
'yii\web\YiiAsset',
'yii\bootstrap\BootstrapAsset',
'yii\bootstrap\BootstrapPluginAsset',
];
//定义按需加载css方法,加载js是同样的方法
public static function addColorCss($view, $cssfile) {
$view->registerCssFile($cssfile, [AppAsset::className(), 'depends' => 'frontend\assets\AppAsset']);
}
}
在要加载非全局样式的模板中,开头加上如下代码:
<?php
use frontend\assets\AppAsset;
AppAsset::addColorCss($this,'@web/css/color.css');//第二个参数是写的css文件路径
?>
这样就完成了,但是如果页面中有好多需要加载的样式呢,还要到资源控制器中定义方法吗?我使用如下方法,在color.css中引入
@import url("b.css");
就可以加载多个样式了!自己也试一下吧!
如果想具体了解一下assets,和调用全局样式,请参考以下两个教程:
http://www.yiichina.com/tutorial/387
http://www.yiichina.com/tutorial/399
同时,谢谢二位的教程贴!
小程府 北京
注册时间:2016-03-23
最后登录:2021-02-09
在线时长:30小时31分
最后登录:2021-02-09
在线时长:30小时31分
- 粉丝13
- 金钱255
- 威望100
- 积分1555
共 1 条评论
如果我想在视图里面单独引入一个css文件,并把它放到所有css文件的最前面,也就是第一个位置,应该怎么做?