Я хочу создать пользовательский виджет в yii2 с его css и js-файлами. Внутри «компонентов» я создал папку «myWidget» и внутри нее: - myWidget.php, которая расширяет yii \ base \ Widget. - myWidgetAsset.php, который расширяет yii \ web \ AssetBundle. - просмотр папки, содержащей файл index.php. - папка с ресурсами, содержащая файлы main.css и main.js.Как зарегистрировать активы виджета в Yii2?
Вот коды: myWidget.php
namespace app\components\myWidget;
use app\components\tablaFoS\tablaFoSAsset;
use app\models\DisciplinesGrandesAreas;
use yii\base\Widget;
class myWidget extends Widget {
public function run() {
parent::run();
return $this->render('index');
}
}
myWidgetAsset.php
namespace app\components\myWidget;
use yii\web\AssetBundle;
class myWidgetAsset extends AssetBundle {
public $basePath = '@webroot';
public $baseUrl = '@web';
public $css = ['assets/main.css'];
public $js = ['assets/main.js'];
public $depends = [
];
}
Когда я вижу сгенерированный код, который я получил:
<link rel="stylesheet" href="/assets/main.css"></link>
<script src="/assets/main.js"></script>
вместо того что-то вроде, например, бутстрап:
<link href="/becyt/assets/67099f30/css/bootstrap.css" rel="stylesheet">
Что я делаю неправильно? Что мне не хватает? Заранее спасибо.
Похоже, вы никогда не регистрировать свой AssetBundle. Я думаю, что вам не хватает, это 'myWidgetAsset :: register ($ this-> view);' перед вызовом 'return $ this-> render ('index');' Однако я застрял в этой же проблеме , где мои js и css-активы вообще не регистрируются, поэтому, если кто-нибудь еще сможет прослушивать, я бы тоже это оценил. –