カスタム ウィジェットを開発しようとしていますが、壁にぶつかりました。インクルードする必要があるサードパーティの JS/CSS ファイルがいくつかありますが、何らかの理由で Yii2 はそれらを登録しません。私は Yii2 のドキュメントのすべてに従いましたが、どこにも到達していないようです。私のディレクトリ構造は次のとおりです。
コンポーネント
- DildenFeedback.php
- DildenFeedbackAsset.php
- views/
-- feedback.php
- assets/
-- feedback.min.js
-- feedback.min.css
DildenFeedback.php (ウィジェット クラス)
<?php
namespace app\components\yii2feedbackwidget;
use Yii;
use yii\base\Widget;
use app\components\yii2feedbackwidget\DildenFeedbackAsset;
class DildenFeedback extends Widget
{
public function run() {
parent::run();
DildenFeedbackAsset::register($this->view);
return $this->render('feedback');
}
}
DildenFeedbackAsset.php (ウィジェット アセット クラス)
<?php
namespace app\components\yii2feedbackwidget;
use yii\web\AssetBundle;
class DildenFeedbackAsset extends AssetBundle {
public $sourcePath = 'assets/';
public $css = ['assets/feedback.min.css'];
public $js = ['assets/feedback.min.js'];
public $depends = ['yii\web\JqueryAsset'];
}
フィードバック ビュー
?>
<script type="text/javascript">
$.feedback();
</script>
views/layouts/main.php (呼び出そうとしていたメイン テンプレート)
<?php $this->endBody() ?>
<?php
echo DildenFeedback::widget();
?>
そのため、ページを調べてみると、feedback.min.js/css がどこにも見つかりません。ビュー ファイルは正しくレンダリングされていますが、AssetBundle の形式が不適切であると推測されます。どんな助けでも大歓迎です。
編集(Yii デバッガー アセットから):
sourcePath /var/www/public/components/yii2feedbackwidget/assets
basePath /var/www/public/web/assets/7e80049a
baseUrl /assets/7e80049a
css assets/feedback.min.css
js assets /feedback.min.js
は yii\web\ JqueryAsset に依存します
編集 2 Yii2 の新規インストールでこれをテストしましたが、同じエラーが発生します。