Pourquoi font-awesome fonctionne sur localhost, mais pas sur le web?

J'utilise font awesome dans mon projet (mvc/asp.net). Mon problème est, je déboguais le projet et vérifiais localhost, Il n'y avait pas de problème avec les icônes impressionnantes de police. Mais quand publié le site web et vérifier sur le web, au lieu d'icônes, j'ai vu de petites boîtes. Je suis sûr qu'il est placé dans le bon répertoire (où css fichiers placés).

Je n'ai trouvé aucune solution appropriée.

En passant, il n'y a pas non plus de problème avec les boutons. Ils sont tous ok mais les icônes ont disparu.

Merci

47
demandé sur Sumit Munot 2013-02-15 16:40:45

9 réponses

Je viens de charger votre page Web et de vérifier l'onglet net de firebug.

Vos URL suivantes ont renvoyé un 404:

Http://www.senocakonline.com/Content/font/fontawesome-webfont.woff

Http://www.senocakonline.com/Content/font/fontawesome-webfont.ttf

Je suppose que ceux qui manquent sont la raison pour laquelle vos icônes ne s'affichent pas.

Mise à jour: 23.10.2015 pour le rendre disponible, ajoutez simplement ce code à votre WebConfig:

<system.webServer>
    <staticContent>
      <mimeMap fileExtension="woff" mimeType="application/font-woff" />
      <mimeMap fileExtension="woff2" mimeType="application/font-woff" />
    </staticContent>
</system.webServer>
62
répondu AdamWhite 2015-10-23 22:50:51

Pourquoi font-awesome fonctionne en mode débogage mais pas sur IIS?

Dans Visual Studio, par défaut, certains fichiers de police ne sont pas inclus pendant la publication:

  • .eot
  • .json
  • .ttf
  • .woff

C'est parce que leur construire une action est définie sur None, c'est par défaut (sur MVC, vous ne savez pas WebForms). Vous devez accéder aux propriétés du fichier affecté et le définir de "None" à "Content".

entrez la description de l'image ici

Voici comment je résolu (pas en faisant glisser manuellement les fichiers comme certains peuvent le suggérer)

Crédits va à ce gars: http://edsykes.blogspot.com/2012/09/aspnet-build-actions-with-ttf-eot-and.html

33
répondu Yorro 2015-02-26 05:54:54

J'ai eu le même problème. La solution:

  1. Ouvrez le fichier CSS et supprimez la section font-face actuelle et remplacez-la par:

    @font-face {
    
        font-family: FontAwesome;
        src: url('/Content/fonts/fontawesome-webfont.eot'), /*for IE */
             url('/Content/fonts/fontawesomewebfont.svg'),
             url('/Content/fonts/fontawesome-webfont.ttf'); /* for CSS3 browsers */
        font-weight: normal;
        font-style: normal;
    }
    

    (modifiez les valeurs de la police comme vous le souhaitez)

  2. Copiez votre fichier de police ttf sur votre bureau puis convertissez en eot

    Http://www.kirsle.net/wizards/ttf2eot.cgi

  3. Convertir le fichier de police TTF en svg

    Http://www.freefontconverter.com/

  4. Convertir le fichier de police ttf en woff (facultatif)

    Http://ttf2woff.com/

  5. Faites glisser et déposez toutes ces polices (ttf, eot, svg, woff... ) à l'emplacement de votre fichier lorsque Visual Studio 2012 est ouvert.

  6. Publier votre projet

8
répondu Mr. Zoidberg 2013-08-23 06:37:37

Une autre solution qui a résolu ce problème pour moi peut être trouvée ici: https://stackoverflow.com/a/12587256/615285

Citant à partir de là:

Le problème est très probable que les icônes / images dans les fichiers css utilisent des chemins relatifs, donc si votre bundle ne vit pas dans le même chemin relatif de l'application que vos fichiers CSS dégroupés, ils deviennent des liens cassés.

La chose facile à faire est de faire en sorte que votre chemin de paquet ressemble au répertoire css afin que les URL relatives fonctionnent, j'.e:

new StyleBundle("~/Static/Css/bootstrap/bundle")

Nous avons ajouté le support pour cela dans la version 1. 1beta1, donc pour réécrire automatiquement les URL de l'image, vous pouvez ajouter un nouveau ItemTransform qui effectue ce rebasage automatiquement.

bundles.Add(new StyleBundle("~/bundles/publiccss").Include(
            "~/Static/Css/bootstrap/bootstrap.css",
            "~/Static/Css/bootstrap/bootstrap-padding-top.css",
            "~/Static/Css/bootstrap/bootstrap-responsive.css",
            "~/Static/Css/bootstrap/docs.css", new CssRewriteUrlTransform()));
8
répondu Mason240 2017-05-23 12:02:39

, Il dépend de cette ligne de code dans BundleConfig:

        BundleTable.EnableOptimizations = true;

Si c'est vrai, vous devez changer le chemin de vos fichiers de police;

../ est montre root path, main folder of your project. Et puis vous devez écrire le reste du chemin.

Le mien. Quand c'est vrai:

font-family: 'Icons';
    src:url('../_include/css/fonts/Icons.eot');
    src:url('../_include/css/fonts/Icons.eot?#iefix') format('embedded-opentype'),
        url('../_include/css/fonts/Icons.woff') format('woff'),
        url('../_include/css/fonts/Icons.ttf') format('truetype'),
        url('../_include/css/fonts/Icons.svg#Icons') format('svg');
    font-weight: normal;
    font-style: normal;

Quand c'est faux:

font-family: 'Icons';
    src:url('fonts/Icons.eot');
    src:url('fonts/Icons.eot?#iefix') format('embedded-opentype'),
        url('fonts/Icons.woff') format('woff'),
        url('fonts/Icons.ttf') format('truetype'),
        url('fonts/Icons.svg#Icons') format('svg');
    font-weight: normal;
    font-style: normal;
2
répondu Ebleme 2016-02-18 13:46:54

C'est aussi un problème de type MIME dans L'IIS, il suffit d'ajouter l'extension de fichier .woff et ça va marcher

1
répondu Bachask8 2015-09-22 16:57:46

Cela a fonctionné pour moi :

J'ai dû lier directement L'URl

1
répondu Michael Mora Montero 2018-04-12 13:49:29

Dans mon ASP.NET projet MVC avec regroupement activé dans BundleConfig.cs ce qui a fonctionné était ceci:

Ouvrez le fichier font-awesome.css et remplacez @font-face par ceci:

@font-face {
  font-family: 'FontAwesome';
  src: url('../font/fontawesome-webfont.eot?v=3.2.1');
  src: url('../font/fontawesome-webfont.eot?#iefix&v=3.2.1') format('embedded-opentype'), url('../font/fontawesome-webfont.woff?v=3.2.1') format('woff'), url('../font/fontawesome-webfont.ttf?v=3.2.1') format('truetype'), url('../font/fontawesome-webfont.svg#fontawesomeregular?v=3.2.1') format('svg');
  font-weight: normal;
  font-style: normal;
}

J'ai dû ajouter ../ avant chaque url.

0
répondu Leniel Maccaferri 2014-01-23 14:39:59

J'ai eu le même problème. Les polices ont été affichées correctement sur local, mais lorsque je l'ai téléchargé sur le serveur, seuls les carrés vides ont été affichés.
parfois, cela peut arriver parce que le nom de fichier mentionné dans L'attribut src du fichier CSS FontAwesome est différent du nom de fichier de police réel. Dans mon cas, je l'ai trouvé comme ceci dans le fichier CSS fontawesome:


    @font-face {
            font-family: 'FontAwesome';
            src: url('../font/fontawesome-webfont.eot?v=3.2.1');
            src: url('../font/fontawesome-webfont.eot?#iefix&v=3.2.1') format('embedded-opentype'),
                url('../font/fontawesome-webfont.woff?v=3.2.1') format('woff'),
                url('../font/fontawesome-webfont_aea8981c.ttf?v=3.2.1') format('truetype'),
                url('../font/fontawesome-webfont.svg#fontawesomeregular?v=3.2.1') format('svg');
            font-weight: normal;
            font-style: normal;
        }
        

Mais les noms de fichiers de police réels wese comme ceux-ci-
        font/fontawesome-webfont_2d2816fe.eot
        font/fontawesome-webfont_aea8981c.eot
        font/fontawesome-webfont_aea8981c.ttf
        font/fontawesome-webfont_aea8981c.woff
        

Bien que le nom ne corresponde pas correctement en css fichier après underscore, cela fonctionnait bien sur local. Il était donc difficile de dire quelle était la cause probable de cette.
Lorsque j'ai édité le nom du fichier dans le fichier CSS FontAwesome src aux noms réels exacts, cela a fonctionné.

0
répondu amit kumar 2015-09-17 09:45:12