yii2引入css和js文件

转http://blog.csdn.net/cs23405/article/details/46865027

最近研究yii2,本想自己写个小项目练习一下,没想到开始就遇到难题了,就是如何引入css和js文件。闲话不多说,下面开始。

1、可以直接在视图页面上引入

  1. <?php   
  2. use yii\helpers\Html;  
  3. ?>  
  4. <?=Html::cssFile('@web/css/index.css')?>  
  5. <?=Html::jsFile('@web/js/jquery.min.js')?>  

2、可以直接写原生代码引入,路径是项目目录/web/css 或者/js

  1. <script src="js/nav.js"></script>   


3、可以使用assetBundle管理css样式及js脚本.

资源包定义:basic/assets/AppAsset.PHP

  1. <?php  
  2. /** 
  3.  * @link http://www.yiiframework.com/ 
  4.  * @copyright Copyright (c) 2008 Yii Software LLC 
  5.  * @license http://www.yiiframework.com/license/ 
  6.  */  
  7.   
  8. namespace app\assets;  
  9.   
  10. use yii\web\AssetBundle;  
  11.   
  12. /** 
  13.  * @author Qiang Xue <qiang.xue@gmail.com> 
  14.  * @since 2.0 
  15.  */  
  16. class AppAsset extends AssetBundle  
  17. {  
  18.     public $basePath = '@webroot';  
  19.     public $baseUrl = '@web';  
  20.     public $css = [  
  21.         'css/site.css',  
  22.         'css/base.css'  
  23.     ];  
  24.     public $js = [  
  25.         'js/sliders.js'  
  26.     ];  
  27.     public $depends = [ //依赖包,没有可以不写  
  28.         'yii\web\YiiAsset',  
  29.         'yii\bootstrap\BootstrapAsset',    
  30.     ];  
  31.   
  32.     //定义按需加载JS方法,注意加载顺序在最后    
  33.     public static function addScript($view, $jsfile) {    
  34.         $view->registerJsFile($jsfile, [AppAsset::className(), 'depends' => 'api\assets\AppAsset']);    
  35.     }    
  36.         
  37.    //定义按需加载css方法,注意加载顺序在最后    
  38.     public static function addCss($view, $cssfile) {    
  39.         $view->registerCssFile($cssfile, [AppAsset::className(), 'depends' => 'api\assets\AppAsset']);    
  40.     }    
  41. }  

在视图文件开头写入:

  1. <?php  
  2. use yii\helpers\Html;  
  3. use app\assets\AppAsset;  
  4.   
  5. AppAsset::register($this);  
  6.   
  7. ?>  


到现在为止,我们可以在浏览器上测试,发现并没有引入css和js文件,这里要注意了,我们还需要最后一步:

在视图文件中我们要加入一下代码(注:如果我们使用公共视图文件,可以加入到公共视图文件,如果没有使用,可以放到单独页面中)

  1. <?php $this->beginPage() ?> <?php $this->head() ?> <?php $this->beginBody() ?> <?php $this->endBody() ?><?php $this->endPage() ?>  


4、不需要在资源包管理器中定义方法,只要在视图页面中直接引入即可

    1. AppAsset::register($this);    
    2. //css定义一样    
    3. $this->registerCssFile('@web/css/font-awesome.min.css',['depends'=>['api\assets\AppAsset']]);    
    4.     
    5.  $this->registerJsFile('@web/js/jquery-ui.custom.min.js',['depends'=>['api\assets\AppAsset']]);    
    6. //$this->registerJsFile('@web/js/jquery-ui.custom.min.js',['depends'=>['api\assets\AppAsset'],'position'=>$this::POS_HEAD]);   
posted @ 2017-04-11 17:01  先生丨孙  阅读(731)  评论(0编辑  收藏  举报