首页 > PHP开发 > Yii2 > yii2.0静态资源js css引入方法
2016
07-07

yii2.0静态资源js css引入方法

配置资源包:

Yii2对于CSS/JS 管理,使用AssetBundle资源包类。
打开 backend/assets/AppAsset.php

namespace backendassets;  
  
use yiiwebAssetBundle;  
  
class AppAsset extends AssetBundle  {  
    public $basePath = '@webroot';  
    public $baseUrl = '@web';
      
    //全局CSS  
    public $css = [  
        'css/animate.css',  
        'css/style.min.css',  
    ]; 
     
    //全局JS  
    public $js = [  
        'js/jquery-2.1.1.js'  
    ]; 
    
    //依赖关系  
    public $depends = [  
        'yiiwebYiiAsset',  
        'yiiootstrapBootstrapAsset',  
    ];  
  
     //定义按需加载JS方法,注意加载顺序在最后  
    public static function addScript($view, $jsfile) {  
        $view->registerJsFile($jsfile, [AppAsset::className(), 'depends' => 'backendassetsAppAsset']);  
    }  
      
   //定义按需加载css方法,注意加载顺序在最后  
    public static function addCss($view, $cssfile) {  
        $view->registerCssFile($cssfile, [AppAsset::className(), 'depends' => 'backendassetsAppAsset']);  
    }  
 }

静态资源在视图中加载

1. 视图(或布局)使用全局CSS/JS

use yiihelpersHtml;  
use backendassetsAppAsset;  
use backendwidgetsAlert;  
  
AppAsset::register($this);

2.在视图中加载单独的样式

$cssString = ".gray-bg{color:red;}";  
$this->registerCss($cssString);

3.在视图中加载单独的JS

<?php$this->registerJs(   
'$("document").ready(function(){ 
        $("#login-form").validate({
            errorElement : "small", 
            errorClass : "error",
            rules: {
                     "AgNav[nav_cn]": {
                         required: true,
                     },
            },
            messages:{
                   "AgNav[nav_cn]" : {  
                        required : "此字段不能为空.",
                    },
            }
        });
    });'
);?>

or

<div id="mybutton">点我弹出OK</div>  
  
<?php $this->beginBlock('test') ?>  
    $(function($) {  
      $('#mybutton').click(function() {  
        alert('OK');  
      });  
    });  
<?php $this->endBlock() ?>  <?php $this->registerJs($this->blocks['test'], yiiwebView::POS_END); ?>

4.视图中引入JS/CSS文件

 使用自定义函数

//定义按需加载JS方法,注意加载顺序在最后  
public static function addScript($view, $jsfile) {  
    $view->registerJsFile($jsfile, [AppAsset::className(), 'depends' => 'backendassetsAppAsset']); 
}
AppAsset::register($this);  
//只在该视图中使用非全局的jui   
AppAsset::addScript($this,'@web/js/jquery-ui.custom.min.js');  
AppAsset::addCss($this,'@web/css/font-awesome/css/font-awesome.min.css');

 直接加载

AppAsset::register($this);  
//css定义一样  
$this->registerCssFile('@web/css/font-awesome.min.css',['depends'=>['backendassetsAppAsset']]);  
$this->registerJsFile('@web/js/jquery-ui.custom.min.js',['depends'=>['backendassetsAppAsset']]);

编程技巧