yii2如何引入自定义css或js文件

本文深入探讨了Yii2框架中资源管理的概念,着重介绍了AssetBundle类的使用方法,包括两种引入方式和AppAsset类的特性,强调了其在规范依赖关系和避免加载顺序错误方面的优势。

 Yii2 在管理css和js脚本方面,引入了一个资源管理包的概念AssetBundle。      先直接写出我所知道的两种引入方式:现假如我要引入我根目录下的 public/assets/js/hello.js  文件   1)第一种是在视图文件中直接引入:       在视图文件开头先引入HTML帮助类<?php
 use yii\helpers\Html;
?>

  然后在文件中引入js:

<?=Html::jsFile('@web/public/assets/js/hello.js')?>

如此即可


最后再说下yii2的资源管理类 AppAsset 类。使用它有什么好处呢?首先一个是它可以规范依赖关系,不会因为js先后的加载顺序不同而导致代码的不可用。比如说引入jquery,我们自定义的代码若是在jquery文件之前先引入了,就有可能出现错误。而使用AppAsset 可以让在视图里加载的文件肯定会排在你的基础样式或脚本的后面,不会出错。

下面说下如何引用:

namespace app\assets;
use yii\web\AssetBundle;

class AppAsset extends AssetBundle {
    public $basePath = '@webroot';
    public $baseUrl = '@web';
    public $css = [
        'public/skin/default_skin/css/theme.css',
    ];
    public $js = [
        'public/vendor/jquery/jquery-1.11.1.min.js',
        'public/vendor/jquery/jquery_ui/jquery-ui.min.js',
        'public/js/bootstrap/bootstrap.min.js',
    ];

    //依赖包
    public $depends = [
        //这里写你的依赖包即可,没有就别写
    ];

    //导入当前页的功能js文件,注意加载顺序,这个应该最后调用
    public static function addPageScript($view, $jsfile) {
        $view->registerJsFile($jsfile, [AppAsset::className(), 'depends' => 'app\assets\AppAsset']);
    }

    
    
}
然后在我们的模板开头部分加上:

//自动加载资源
AppAsset::register($this);
然后导入js:

//导入js资源
\app\assets\AppAsset::addPageScript($this,'js文件相对路径或url');  //@web/public/assets/js/hello.js

如此即可。再延伸一下,假如几个页面都共同引入了相同的几个js或css文件安,那么可以在AppAsset里导入当前js文件函数里,一次性加载多几个js文件:

//导入当前页的功能js文件,注意加载顺序,这个应该最后调用
    public static function addPageScript($view) {
        $view->registerJsFile('@web/public/assets/js/hello.js', [AppAsset::className(), 'depends' => 'app\assets\AppAsset']);
}


在视图中直接调用addPageScript($this)即可
//导入js资源
\app\assets\AppAsset::addPageScript($this);



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值