如何在yii2中添加assetbundle js / css只添加一页?

时间:2016-08-28 12:42:42

标签: yii2 assetbundle

我在vendor / bower文件夹中添加了fullcalendar js / css。我想将它添加到一个页面中。

我在此链接上阅读了abt AssestBundle - http://www.yiiframework.com/doc-2.0/guide-structure-assets.html

但是这会在所有页面中添加。

1 个答案:

答案 0 :(得分:3)

在Yii 2框架资产包中,建议使用js / css。它不仅限于添加到所有页面。您只能在特定视图中使用它。

JsTree插件的资产包示例:

<?php

namespace backend\assets;

use yii\web\AssetBundle;

class JsTreeAsset extends AssetBundle
{
    public $sourcePath = '@bower_components/jstree/dist';

    public $js = [
        'jstree.min.js',
    ];

    public $css = [
        'themes/default/style.min.css',
    ];

    public $depends = [
        'yii\web\JqueryAsset',
    ];
}

在此示例中,使用@bower_components别名,为了使其正常工作,您还需要在应用程序引导程序文件中注册它(在高级应用程序模板中,此文件为common/config/bootstrap.php):

Yii::setAlias('bower_components', dirname(dirname(__DIR__)) . '/bower_components');

然后,在您需要使用它的位置,请调用此资产包的register()方法并传递当前视图:

use backend\assets\JsTreeAsset;

...

JsTreeAsset::register($this);

应用程序模板中包含的默认资产包(AppAsset)中的文件将加载到每个视图中,因为它在应用程序布局和布局中已注册,并应用于所有视图。