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?

Martin Buberl
la source

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

Martin Buberl
la source
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

faucon
la source
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>
Mohamed.Abdo
la source
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!

JayC
la source
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>
Daman Singh
la source
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

Nathan Prather
la source
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

Tarun Gupta
la source
0

J'avais un problème pour que mon application ASP.NET 5.0 / MVC 6 serve des types de fichiers binaires statiques ou parcoure des répertoires virtuels. Il semble que cela soit maintenant fait dans Configure () au démarrage. Voir http://docs.asp.net/en/latest/fundamentals/static-files.html pour une introduction rapide.

Brian Wirt
la source