我正在使用Yii2基本模板。在layouts / main.php中,在head部分中,我已经设置了
<link rel="shortcut icon" href="<?php echo Yii::$app->getHomeUrl(); ?>/favicon.ico" type="image/x-icon" />
或
<link rel="shortcut icon" href="/favicon.ico" type="image/x-icon" />
或......(依此类推),但似乎任何事情都有效。我的应用程序继续显示基本模板favicon而不是我的,就像往常一样在根网站文件夹中。
我知道我可以发布此文件以避免此问题,但我认为应该没有必要。
我做错了什么? Yii2如何显示其标准的favicon?
答案 0 :(得分:8)
按照documentaion中的说明设置favicon的另一种方法是在main.php
下的views/layouts
文件中添加类似内容。
$this->registerLinkTag(['rel' => 'icon', 'type' => 'image/png', 'href' => '/favicon.png']);
答案 1 :(得分:7)
rkm 提到它是因为浏览器缓存。轻松修复是添加../favicon.ico?v=1
之类的版本,浏览器将加载新版本。
答案 2 :(得分:1)
我在app / web目录中有favicon.ico,下面的代码工作正常
<link rel="shortcut icon" href="<?php echo Yii::$app->request->baseUrl; ?>/favicon.ico" type="image/x-icon" />
答案 3 :(得分:1)
您可以像在AppAsset.php
文件中添加额外的一行一样简单:
public $css = [
[
'href' => 'path-to-your-icon/icon-32x32.png',
'rel' => 'icon',
'sizes' => '32x32',
],
[
'href' => 'path-to-your-icon/icon-192x192.png',
'rel' => 'icon',
'sizes' => '192x192',
],
[
'href' => 'path-to-your-icon/icon-180x180.png',
'rel' => 'apple-touch-icon-precomposed',
],
'css/site.css',
];
希望这会有所帮助。
答案 4 :(得分:0)
而不是使用:
的Yii :: $ APP-&GT;请求 - &GT;的baseUrl;
尝试使用:
的Yii :: $ APP-&GT; assetManager-&GT; getPublishedUrl( '@前端/资产/ DIST')
答案 5 :(得分:0)
第1步:在( common/config/params.php
)中定义公共参数,如下所示:
return [
'adminEmail' => 'admin@example.com',
'supportEmail' => 'support@example.com',
'user.passwordResetTokenExpire' => 3600,
'commonPath' => '/<your_project_name>/common',
];
第2步:使用已定义的commonPath
显示favicon图标,如下所示:
<link rel="shortcut icon" href="<?= Yii::$app->params['commonPath']; ?>/favicon.ico" type="image/x-icon" />
注意:将favicon.ico
放在common/
目录中。