未找到Yii2主题集成图像

时间:2015-04-22 20:19:50

标签: php yii2 yii2-advanced-app

我使用 Yii2 创建了一个新应用,并添加了一个新主题:

/var/www/html/<project_name>/web/themes/<theme_name>

中创建了一个目录

然后创建子目录和相关文件。

<theme_name>
    -layouts
        main.php
    -css
        style.css
    -js
        scrippt.js
    -images
        logo.jpg

之后在config/web.php

中注册了我的主题
$config = [
    ..........
    'components' => [
        'view' => [
            'theme' => [
                'pathMap' => ['@app/views' => '@app/themes/<theme_name>'],
                //'baseUrl'   => '@theme/<theme_name>/'
          ]
        ],
    ...........
    ]
];

然后我改变了assets/AppAsset.php

class AppAsset extends AssetBundle
{
    public $sourcePath = '@app/themes/<theme_name>';
    public $css = [
        'css/style.css'
    ];
    public $js = [
        'js/scrippt.js',
    ];
    public $depends = [

    ];
}

在main.php中:

  <img src="/images/logo.jpg" alt="">

错误:找不到logo.jpg。

我的错误在哪里?

1 个答案:

答案 0 :(得分:3)

在视图中调用$bundle = YourAssetBundle::register($this);后,您可以使用$bundle->baseUrl并将其作为图片标记中图像路径的前缀。

<?= Html::img($bundle->baseUrl.'/images/logo.jpg')?>

我想/var/www/html/<project_name>/web/themes/<theme_name>应该更改为/var/www/html/<project_name>/themes/<theme_name>,因为您的AssetBundle中有@app个别名(不是@web)。