web-dev-qa-db-fra.com

Favicon personnalisé dans Yii2

Je travaille avec le modèle de base Yii2. Dans layouts/main.php, dans la section head, j’ai défini

<link rel="shortcut icon" href="<?php echo Yii::$app->getHomeUrl(); ?>/favicon.ico" type="image/x-icon" />

ou 

<link rel="shortcut icon" href="/favicon.ico" type="image/x-icon" />

ou ... (etc.), mais tout semble fonctionner. Mon application continue d'afficher le modèle de base favicon au lieu du mien, qui se trouve dans le dossier Web racine comme d'habitude.

Je sais que je pourrais publier ce fichier pour éviter ce problème, mais je pense que cela ne devrait pas être nécessaire. 

Qu'est-ce que je fais mal? Et comment Yii2 affiche-t-il son favicon standard quand même?

9
Jorgeska

comme rkm mentionné, c'est à cause du cache du navigateur. La solution facile consiste à ajouter une version telle que ../favicon.ico?v=1 et le navigateur chargera la nouvelle version.

7
temirbek

Une autre façon de définir le favicon comme décrit dans documentation consiste à ajouter quelque chose comme ceci au fichier main.php situé sous views/layouts. $this->registerLinkTag(['rel' => 'icon', 'type' => 'image/png', 'href' => '/favicon.png']);

8
johnsnails

J'ai le favicon.ico dans le répertoire app/web et le code ci-dessous fonctionne correctement

 <link rel="shortcut icon" href="<?php echo Yii::$app->request->baseUrl; ?>/favicon.ico" type="image/x-icon" />
1
scaisEdge

Étape 1: Définissez le paramètre commun dans (common/config/params.php) comme ci-dessous:

return [
    'adminEmail' => '[email protected]',
    'supportEmail' => '[email protected]',
    'user.passwordResetTokenExpire' => 3600,    
    'commonPath' => '/<your_project_name>/common',
];

Étape 2: Utilisez la variable commonPath définie pour afficher l'icône de favicon comme suit:

<link rel="shortcut icon" href="<?= Yii::$app->params['commonPath']; ?>/favicon.ico" type="image/x-icon" />

Remarque: Placez votre favicon.ico dans le répertoire common/.

0
ersks

à la place d'utiliser :

Yii :: $ app-> request-> baseUrl;

essayez d'utiliser:

Yii :: $ app-> assetManager-> getPublishedUrl ('@ frontend/assets/dist')

0
zahrin