Ajouter un mappage MIME dans web.config pour IIS Express


178

Je dois ajouter un nouveau mappage MIME pour les extensions de fichier .woff à IIS Express.

Si j'ajoute l'extrait de code suivant à "applicationhost.config" d'IIS Express, cela fonctionne bien:

<staticContent lockAttributes="isDocFooterFileName">
    <mimeMap fileExtension=".woff" mimeType="font/x-woff" />
    ...

Mais je voudrais en fait l'ajouter à mon "web.config" afin que tous les développeurs n'aient pas besoin de changer leur "applicationhost.config" localement.

Je l'ai donc supprimé à nouveau du fichier "applicationhost.config" et j'ai ajouté l'extrait suivant au "web.config" du projet:

<system.webServer>
  ...
  <staticContent>
    <mimeMap fileExtension=".woff" mimeType="font/x-woff" />
  </staticContent>
</system.webServer>

Malheureusement, cela ne semble pas fonctionner de cette façon, car lorsque j'essaie d'accéder à un fichier .woff, je me retrouve avec une erreur HTTP 404.3.

Qu'est-ce que je fais mal?

Réponses:


310

Le mettre dans le "web.config" fonctionne très bien. Le problème était que j'avais mal le type MIME. Au lieu de font/x-woffou font/x-font-woffil doit être application/font-woff:

<system.webServer>
  ...
  <staticContent>
    <remove fileExtension=".woff" />
    <mimeMap fileExtension=".woff" mimeType="application/font-woff" />
  </staticContent>
</system.webServer>

Voir aussi cette réponse concernant le type MIME: https://stackoverflow.com/a/5142316/135441

Mise à jour du 4/10/2013

Spec est maintenant une recommandation et le type MIME est officiellement: application/font-woff



5
Selon le lien, le type mime mis à jour devrait maintenant être: application / font-woff (plutôt que application obsolète / x-font-woff).
longda

1
@longda Merci pour cet indice! J'ai mis à jour la réponse pour refléter cela.
Martin Buberl

Cette méthode de définition de types MIME personnalisés dans le fichier web.config fonctionne-t-elle uniquement dans IIS Express? Je l'ai essayé dans un web.config déployé sur IIS 6 et cela ne fonctionne pas (lance 404). Si j'ajoute le type MIME via la console IIS Manager, cela fonctionne.
Walter Stabosz

@WalterStabosz Ce qui précède fonctionne pour IIS et IIS Express 7+. Si vous êtes sur IIS 6, vous devez configurer les types mime sur le serveur, voir configuration des types mime sur IIS 6 .
Martin Buberl

59

Si quelqu'un rencontre cela avec des erreurs telles que Erreur: impossible d'ajouter une entrée de collection en double de type 'mimeMap' avec un attribut de clé unique et / ou d'autres scripts cessent de fonctionner lors de cette correction, il peut être utile de la supprimer d'abord comme ceci:

<staticContent>
  <remove fileExtension=".woff" />
  <mimeMap fileExtension=".woff" mimeType="application/font-woff" />
</staticContent>

Au moins ça a résolu mon problème


1
Merci, cela ajoute une certaine sécurité lors du déploiement :)
rdmptn

3
Ajoutez ceci à ma liste de fonctionnalités que j'aime dans IIS.
QueueHammer

1
Si le serveur contient déjà un type mime, le spécifier dans le fichier web.config provoque probablement l'exception de duplication.
The Muffin Man

19
<system.webServer>
     <staticContent>
      <remove fileExtension=".woff"/>
      <mimeMap fileExtension=".woff" mimeType="application/font-woff" />
      <mimeMap fileExtension=".woff2" mimeType="font/woff2" />
    </staticContent>
  </system.webServer>

6

Je sais que c'est une vieille question, mais ...

Je remarquais juste que mon instance d'IISExpress ne servait pas de fichiers woff, donc je ne cherchais pas (Trouvé ceci) et ensuite trouvé:

http://www.tomasmcguinness.com/2011/07/06/adding-support-for-svg-to-iis-express/

Je suppose que mon installation prend en charge SVG car je n'ai pas eu de problème avec cela. Mais les instructions sont très modifiables pour woff:

  • Ouvrez une application console avec des privilèges d'administrateur.
  • Navigation vers le répertoire IIS Express. Cela vit sous Program Files ou Program Files (x86)
  • Exécutez la commande:

    appcmd set config / section: staticContent / + [fileExtension = 'woff', mimeType = 'application / x-woff']

J'ai résolu mon problème et je n'ai pas eu à jouer avec une configuration minable (comme je devais ajouter le support des verbes PUTet DELETE). Yay!


4

Merci pour ce post. Cela a fonctionné pour l'utilisation de modèles de moustache dans mon projet mvc asp.net J'ai utilisé ce qui suit, et cela a fonctionné pour moi.

<system.webServer>   
  <staticContent>
   <mimeMap fileExtension=".mustache" mimeType="text/html"/>
  </staticContent>
</system.WebServer>

3

Je n'utilise pas IIS Express mais je développe avec mon IIS local complet 7.

Donc, si quelqu'un d'autre essayait de le faire, je devais ajouter le type mime pour woff via le gestionnaire IIS

Types MIME >> Cliquez sur Ajouter un lien à droite, puis entrez Extension: .woff Type MIME: application / font-woff


Merci, cela m'a permis de relancer un projet. Les choses allaient bien avec IIS7.5 avec moi, mais j'ai obtenu Win8 et IIS8, et les mappages dans le web.config du site étaient dupliqués avec la configuration IIS, provoquant des erreurs pour toute ressource statique demandée. J'ai supprimé les doublons et les choses fonctionnent bien maintenant.
rdmptn

3

Pour résoudre le problème, double-cliquez sur l'option de configuration "Types MIME" tout en sélectionnant le nœud racine IIS dans le panneau de gauche et cliquez sur le lien "Ajouter ..." dans le panneau Actions sur la droite. Cela fera apparaître la boîte de dialogue suivante. Ajoutez l'extension de fichier .woff et spécifiez "application / x-font-woff" comme type MIME correspondant:

entrez la description de l'image ici

Suivez la même chose pour woff2 avec application / x-font-woff2


En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.