Yii2中的自定义图标

时间:2015-05-28 16:10:56

标签: php yii2

我正在使用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?

6 个答案:

答案 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/目录中。