2015-01-08 6 views
7

まあ、私はAppAssetのすべてのCSSとJavaScriptを宣言しましたが、フロントエンドビューのCSSとjsリンクを表示することはできません。ここに私のファイルは、以下のとおりです。Yii2 AppAssetがレイアウト内にCSS/jsリンクを生成しない

アプリ/資産/ AppAsset.php:

<?php 

namespace app\assets; 

use yii\web\AssetBundle; 
class AppAsset extends AssetBundle { 
    public $basePath = '@webroot'; 
    public $baseUrl = '@web'; 
    public $css = [ 
     'assets/css/bootstrap.min.css', 
     'assets/plugins/weather-icon/css/weather-icons.min.css', 
     ... 
    ]; 
    public $js = [ 
    ]; 
    public $depends = [ 
     'yii\web\YiiAsset', 
     'yii\bootstrap\BootstrapAsset', 
    ]; 
} 

、ここでは私のレイアウトである(アプリ/モジュール/管理/レイアウト/ admin.php):

<?php 

use app\assets\AppAsset; 

AppAsset::register($this); 
?> 

<?php $this->beginPage() ?> 
<!DOCTYPE html> 
<html lang="en"> 
    <head> 
     <?php $this->head() ?> 
     <?= $this->render('partials/head') ?> 
    </head> 
<body class="tooltips"> 
    <?= $this->render('partials/colour_panel') ?> 
     <div class="wrapper"> 
      <?= $this->render('partials/top_navbar') ?> 
      <?= $this->render('partials/left_sidebar') ?> 
      <?= $this->render('partials/right_sidebar') ?> 
      <div class="page-content"> 
       <div class="container-fluid"> 
        <?= $content ?> 
        <?= $this->render('partials/footer') ?> 
       </div> 
      </div> 
     </div> 
     <?= $this->render('partials/scripts') ?> 
    </body> 
</html> 
<?php $this->endPage() ?> 

前もって感謝します!

答えて

5

この部分

<?php $this->head() ?> 

自動的に頭の中でそれらをコピーする必要があります。あなたが使っているパスが正しいと確信していますか?

public $sourcePath = '@vendor'; 
public $css = [ 
    'assets/css/bootstrap.min.css', 

ファイルがvendor/assets/css /それは私にとって間違っているようです。

+0

はい、ファイルへのパスは大丈夫です。現在、すべての私のcssとjsファイルで構成されるディレクトリはvendor/scriptsです。ベンダからのすべてのファイルは "web/assets/2b2e6bcf"にコピーされますが、残念ながらレイアウトのヘッドセクションに表示されていないようです。何か案は? –

+0

かなり確信しないでください。あなたのプロジェクトでは、アプリケーションのメインフォルダに移動してから、vendor/assets/css/bootstrap.min.cssに移動してそこにファイルがあることを確認します。まともなyii2のインストールは何もそこにあるはずです。 –

+0

私はすでに何度もチェックしています。ファイルはそこにありましたが、htmlレイアウトの先頭には宣言されていませんでした。今、私はそれらを "web/assets"ディレクトリに置くことにしましたが、やはり動作しないようです。メインポストを確認してください。 –

7

私は同じ問題がありました。私の場合、レイアウトは<?php $this->beginBody() ?>
<?php $this->endBody() ?>のセクションは<body></body>タグ内にありません。それは、このようにする必要があり

<body> 
<?php $this->beginBody() ?> 
    <!--content--> 
<?php $this->endBody() ?> 
</body> 

は、それが20メガバイトよりも大きい誰か

+0

これはうまくいったのですが、なぜですか?これらのステートメントは私のメインレイアウト(JSが動作する場所)にはありませんが、 – gvanto

+0

@gvanto Ussualy JSタグは、タグ(または)のタグを閉じる前に置かれます。 '' $ this-> endBody() ''文は、 YiiはHTMLボディの終わりです.Yiiは、がどこで終了するのかわからず、前に