Yii2 前端资源管理笔记

简单介绍

资源是什么?

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

管理方式

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

资源包管理类

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

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

如下,

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
<?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. 小部件类中
1
2
3
<?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


Yii2 前端资源管理笔记
http://blog.soul11201.com/2016/02/20/yii2-assets/
作者
soul11201
发布于
2016年2月20日
许可协议