2017-01-01 9 views
0

コンテキストYii2ブートストラップ資産カスタムレイアウトを使用して

私は投与のためのモジュールが存在しているYii2アプリケーションを持っています。

私は

public $layout = 'main'; 

を宣言するモジュールのAdmin.phpで、したがって、このモジュールのために特定のレイアウトを使用して、モジュールのwiews /レイアウトフォルダに特定のレイアウトを配置したいと思います

アプリケーションのレイアウトは

AppAsset::register($this); 

を使用していますので、管理モジュールのレイアウトを行います。

AppAsset.phpは、私が使用したいブートストラップの機能はタブ付きビューで些細な

class AppAsset extends AssetBundle 
{ 
    public $basePath = '@webroot'; 

    public $baseUrl = '@web'; 
    public $css = [ 

     'scss/myOwnStyle.scss' 
    ]; 
    public $js = [ 
    ]; 
    public $depends = [ 
     'yii\web\YiiAsset', 
     'yii\bootstrap\BootstrapAsset', 
    ]; 
} 

です。上記のように物事をまかせ

結果

、管理画面のタブの切り替えは動作しません。 管理モジュールから特定のレイアウトを削除すると、すべて正常に動作します。

実際、これはページにBootstrap javascriptが存在しないためです。実際に

<script src="/assets/f7ad570a/js/bootstrap.js"></script> 

特定のレイアウトを使用している場合、ページのソースには表示されません。

私の質問

どのように特定のレイアウトを使用した場合bootstrap.jsスクリプトが管理ページに含まれていない来ますか?

答えて

0

yii2-bootstrapは、JavaScriptファイルが必要になるまで読み込まれないためです。そして、あなたがyii2-bootstrapウィジェットを使用しているときは必要です。

私はyii2-bootstrapウィジェットを呼び出してブートストラップコンポーネントを生成するのではなく、あなた自身でそれを生成すると思います。

この場合、yii2-bootstrapは何をしていますか? - 登録yii\bootstrap\BootstrapPluginAssetも同様です。

+0

ありがとうございました。あなたが正しいです。私はもっ​​と深く調査しなければならない。 Navbar:beginとNavbar:endの間にNavウィジェットを置かずにNavウィジェットを使用していたことが分かりました。私はこのNavbarを再導入したので、うまく動作し、boostrap.jsがページに再導入されました。 – meaulnes

+0

しかし、BootstrapPluginAssetの登録だけでもうまくいきます – meaulnes

0

私はそれが起こる理由を正確にはわかりませんが、<body>の前にjavascriptを入れようとしますか?

public $jsOptions = [ 
    'position' => \yii\web\View::POS_HEAD 
]; 
関連する問題