我使用 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。
我的错误在哪里?
答案 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)。