Yii2 AppAsset在布局中不生成css / js链接

时间:2015-01-08 00:20:00

标签: layout assets yii2

好吧,我在AppAsset中声明了我所有的CSS和JavaScript内容,但我不能让它在前端视图中显示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',
    ];
}

这是我的布局(app / modules / admin / layouts / 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() ?>

提前致谢!

4 个答案:

答案 0 :(得分:8)

我有同样的问题。在我的案例中,布局在<?php $this->beginBody() ?>标记内没有<?php $this->endBody() ?><body></body>个部分。

应该是这样的:

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

希望它有助于某人

答案 1 :(得分:5)

这部分

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

应自动将它们复制到头部。你确定你使用的路径是正确的吗?

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

意味着你的文件在vendor / assets / css / bootstrap.min.css中找到你确定是对的吗?因为那对我来说不对。

答案 2 :(得分:0)

您的资产文件夹文件大小可能超过20MB。我认为资产经理没有创建大文件夹。

答案 3 :(得分:0)

我遇到了同样的问题,因为我错误地从frontend/views/layouts/main.php的行下面删除了

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

添加上述行后,CSS开始工作。