转http://blog.csdn.net/cs23405/article/details/46865027
最近研究yii2,本想自己写个小项目练习一下,没想到开始就遇到难题了,就是如何引入css和js文件。闲话不多说,下面开始。
1、可以直接在视图页面上引入
- <?php
- use yii\helpers\Html;
- ?>
- <?=Html::cssFile('@web/css/index.css')?>
- <?=Html::jsFile('@web/js/jquery.min.js')?>
2、可以直接写原生代码引入,路径是项目目录/web/css 或者/js
- <script src="js/nav.js"></script>
资源包定义:basic/assets/AppAsset.
- <?php
- /**
- * @link http://www.yiiframework.com/
- * @copyright Copyright (c) 2008 Yii Software LLC
- * @license http://www.yiiframework.com/license/
- */
- namespace app\assets;
- use yii\web\AssetBundle;
- /**
- * @author Qiang Xue <qiang.xue@gmail.com>
- * @since 2.0
- */
- class AppAsset extends AssetBundle
- {
- public $basePath = '@webroot';
- public $baseUrl = '@web';
- public $css = [
- 'css/site.css',
- 'css/base.css'
- ];
- public $js = [
- 'js/sliders.js'
- ];
- public $depends = [ //依赖包,没有可以不写
- 'yii\web\YiiAsset',
- 'yii\bootstrap\BootstrapAsset',
- ];
- //定义按需加载JS方法,注意加载顺序在最后
- public static function addScript($view, $jsfile) {
- $view->registerJsFile($jsfile, [AppAsset::className(), 'depends' => 'api\assets\AppAsset']);
- }
- //定义按需加载css方法,注意加载顺序在最后
- public static function addCss($view, $cssfile) {
- $view->registerCssFile($cssfile, [AppAsset::className(), 'depends' => 'api\assets\AppAsset']);
- }
- }
在视图文件开头写入:
- <?php
- use yii\helpers\Html;
- use app\assets\AppAsset;
- AppAsset::register($this);
- ?>
到现在为止,我们可以在浏览器上测试,发现并没有引入css和js文件,这里要注意了,我们还需要最后一步:
在视图文件中我们要加入一下代码(注:如果我们使用公共视图文件,可以加入到公共视图文件,如果没有使用,可以放到单独页面中)
- <?php $this->beginPage() ?> <?php $this->head() ?> <?php $this->beginBody() ?> <?php $this->endBody() ?><?php $this->endPage() ?>
4、不需要在资源包管理器中定义方法,只要在视图页面中直接引入即可
-
- AppAsset::register($this);
- //css定义一样
- $this->registerCssFile('@web/css/font-awesome.min.css',['depends'=>['api\assets\AppAsset']]);
- $this->registerJsFile('@web/js/jquery-ui.custom.min.js',['depends'=>['api\assets\AppAsset']]);
- //$this->registerJsFile('@web/js/jquery-ui.custom.min.js',['depends'=>['api\assets\AppAsset'],'position'=>$this::POS_HEAD]);