Как добавить в yii2, чтобы активы js/css добавлялись только на одну страницу?

Я добавил fullcalendar js/css в папку vendor/bower. Я хочу добавить это только на одну страницу.

Я прочитал об AssestBundle по этой ссылке - http://www.yiiframework.com/doc-2.0/guide-structure-assets.html

Но это добавление на всех страницах.


person Ish    schedule 28.08.2016    source источник


Ответы (1)


В фреймворке 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), включенном в шаблоны приложений, загружаются в каждое представление, поскольку оно зарегистрировано в макете приложения, а макет применяется ко всем представлениям.

person arogachev    schedule 28.08.2016