简单介绍

资源是什么?

Yii中的资源是 和Web页面相关的文件 ,可为CSS文件,JavaScript文件,图片或视频等,资源放在Web可访问的目录下,直接被Web服务器调用。在yii中实现了使用程序自动管理资源。

管理方式

Yii在资源包中管理资源,资源包简单的说就是放在一个目录下的资源集合,在视图中注册一个资源包,在渲染Web页面时会包含包中的CSS和JavaScript文件

资源包管理类

继承于yii\web\AssetBundle的类,类名可自动加载。在类中要指定:

  1. 资源所在位置,
  2. 要包含的css、js文件
  3. 依赖的包

如下,

<?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',
        ];
        public $js = [
        ];
        public $depends = [
            'yii\web\YiiAsset',
            'yii\bootstrap\BootstrapAsset',
        ];
    }

资源分类 – 根据资源所在的位置

  1. 源资源

  2. 发布资源

  3. 外部资源

使用资源包

  1. 视图中
  2. 小部件类中
<?php
    use app\assets\AppAsset;
    AppAsset::register($this);  // $this 代表视图对象

yii2中的代码实现

SiteController中怎么加载进来的?在那个位置,怎么调用的代码?

文件 @app/views/layouts/main.php 调用的代码$this->endBody()

yii\web\View

registerAssetBundle($name, $position = null) 注册依赖的资源包,其中$name是资源包的管理类的类名。

参考

http://www.yiichina.com/doc/guide/2.0/structure-assets