Agregar mapeo MIME en web.config para IIS Express


178

Necesito agregar una nueva asignación MIME para las extensiones de archivo .woff a IIS Express.

Si agrego el siguiente fragmento al "applicationhost.config" de IIS Express, funciona bien:

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

Pero en realidad me gustaría agregarlo a mi "web.config" para que no todos los desarrolladores necesiten cambiar su "applicationhost.config" localmente.

Así que lo eliminé nuevamente del archivo "applicationhost.config" y agregué el siguiente fragmento al "web.config" del proyecto:

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

Desafortunadamente, no parece funcionar de esa manera porque cuando trato de acceder a un archivo .woff termino con un error HTTP 404.3.

¿Qué estoy haciendo mal?

Respuestas:


309

Ponerlo en el "web.config" funciona bien. El problema fue que me equivoqué del tipo MIME. En lugar de font/x-woffo font/x-font-woffdebe ser application/font-woff:

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

Consulte también esta respuesta con respecto al tipo MIME: https://stackoverflow.com/a/5142316/135441

Actualización 4/10/2013

Spec ahora es una recomendación y el tipo MIME es oficialmente: application/font-woff



55
Según el enlace, el tipo mime actualizado ahora debería ser: application / font-woff (en lugar de application / x-font-woff en desuso).
longda

1
@ Longda Gracias por esa pista! Actualicé la respuesta para reflejar eso.
Martin Buberl

¿Este método de definir tipos MIME personalizados en web.config solo funciona en IIS Express? Lo probé en un web.config implementado en IIS 6 y no funciona (arroja 404). Si agrego el tipo MIME a través de la Consola del Administrador IIS, funciona.
Walter Stabosz

@WalterStabosz Lo anterior funciona para IIS e IIS Express 7+. Si está en IIS 6, debe configurar los tipos MIME en el servidor, consulte Configuración de los tipos MIME en IIS 6 .
Martin Buberl

59

Si alguien encuentra esto con errores como Error: no se puede agregar una entrada de colección duplicada del tipo 'mimeMap' con un atributo de clave único y / u otros scripts dejan de funcionar al hacer esta corrección, podría ayudar a eliminarlo primero de esta manera:

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

Al menos eso resolvió mi problema


1
Gracias, eso agrega un poco de seguridad al implementar :)
rdmptn

3
Agregue esto a mi lista de características que me encantan de IIS.
QueueHammer

1
Si el servidor ya contiene un tipo mime, especificarlo en web.config probablemente cause la excepción duplicada.
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

Sé que esta es una vieja pregunta, pero ...

Estaba notando que mi instancia de IISExpress no estaba sirviendo archivos woff, así que no estaba buscando (Encontré esto) y luego encontré:

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

Supongo que mi instalación tiene soporte para SVG ya que no he tenido problemas con eso. Pero las instrucciones son trivialmente modificables para woff:

  • Abra una aplicación de consola con privilegios de administrador.
  • Navegación al directorio de IIS Express. Esto vive bajo Archivos de programa o Archivos de programa (x86)
  • Ejecute el comando:

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

Solucioné mi problema y no tuve que meterme con algunas configuraciones malas (como si tuviera que agregar soporte para los verbos PUTy DELETE). ¡Hurra!


4

Gracias por este post Esto funcionó para usar plantillas de bigote en mi proyecto asp.net mvc. Utilicé lo siguiente y funcionó para mí.

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

3

No estoy usando IIS Express pero estoy desarrollando contra mi Local Full IIS 7.

Entonces, si alguien más está aquí tratando de hacer eso, tuve que agregar el tipo mime para woff a través del Administrador IIS

Tipos Mime >> Haga clic en Agregar enlace a la derecha y luego ingrese Extensión: .woff Tipo MIME: application / font-woff


Gracias, esto me puso al día con la ejecución de un proyecto nuevamente. Las cosas estaban bien con IIS7.5 conmigo, pero obtuve Win8 e IIS8, y las asignaciones en la web.config del sitio se duplicaban con la configuración de IIS, lo que causaba errores para cualquier recurso estático solicitado. Eliminé los duplicados y las cosas están funcionando bien ahora.
rdmptn

3

Para resolver el problema, haga doble clic en la opción de configuración "Tipos MIME" mientras selecciona el nodo raíz IIS en el panel izquierdo y haga clic en el enlace "Agregar ..." en el panel Acciones a la derecha. Aparecerá el siguiente cuadro de diálogo. Agregue la extensión de archivo .woff y especifique "application / x-font-woff" como el tipo MIME correspondiente:

ingrese la descripción de la imagen aquí

Siga lo mismo para woff2 con application / x-font-woff2


Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.