Aggiungi il mapping MIME in web.config per IIS Express


178

Devo aggiungere un nuovo mapping MIME per le estensioni di file .woff a IIS Express.

Se aggiungo il seguente frammento al "applicationhost.config" di IIS Express funziona perfettamente:

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

Ma vorrei davvero aggiungerlo al mio "web.config" in modo che non tutti gli sviluppatori avrebbero bisogno di cambiare il loro "applicationhost.config" localmente.

Quindi l'ho rimosso di nuovo dal file "applicationhost.config" e ho aggiunto il seguente frammento al "web.config" del progetto:

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

Sfortunatamente non sembra funzionare in questo modo perché quando provo ad accedere a un file .woff finisco con un errore HTTP 404.3.

Che cosa sto facendo di sbagliato?

Risposte:


309

Inserendolo in "web.config" funziona bene. Il problema era che ho sbagliato il tipo MIME. Invece di font/x-woffo font/x-font-woffdeve essere application/font-woff:

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

Vedi anche questa risposta relativa al tipo MIME: https://stackoverflow.com/a/5142316/135441

Aggiornamento 4/10/2013

La specifica ora è una raccomandazione e il tipo MIME è ufficialmente: application/font-woff


2
In seguito, come aggiungere tipi mime con IIS7 Web.config e errori 404 in IIS7 per file di caratteri .woff incorporati . Voila, anche se con un anno di ritardo alla festa.
— ruffin,

5
Secondo il link, il tipo mime aggiornato dovrebbe ora essere: application / font-woff (piuttosto che obsoleto application / x-font-woff).
— longda,

1
@longda Grazie per quel suggerimento! Ho aggiornato la risposta per riflettere questo.
— Martin Buberl,

Questo metodo di definizione dei tipi MIME personalizzati in web.config funziona solo in IIS Express? L'ho provato in un web.config distribuito su IIS 6 e non funziona (genera 404). Se aggiungo il tipo MIME tramite la console di gestione IIS, funziona.
— Walter Stabosz,

@WalterStabosz Quanto sopra funziona per IIS e IIS Express 7+. Se si utilizza IIS 6, è necessario configurare i tipi mime sul server, consultare la sezione Configurazione dei tipi mime su IIS 6 .
— Martin Buberl,

59

Se qualcuno riscontra questo con errori come Errore: impossibile aggiungere una voce di raccolta duplicata di tipo 'mimeMap' con attributo chiave univoca e / o altri script smettono di funzionare quando si esegue questa correzione, potrebbe essere utile rimuoverla prima in questo modo:

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

Almeno questo ha risolto il mio problema


1
Grazie, questo aggiunge un po 'di sicurezza durante la distribuzione :)
— rdmptn,

3
Aggiungi questo al mio elenco di funzionalità che adoro di IIS.
— QueueHammer,

1
Se il server contiene già un tipo mime, specificarlo in web.config probabilmente causa l'eccezione duplicata.
— 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

So che questa è una vecchia domanda, ma ...

Stavo solo notando che la mia istanza di IISExpress non stava offrendo file woff, quindi non ho cercato (trovato questo) e poi ho trovato:

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

Suppongo che la mia installazione abbia il supporto per SVG poiché non ho avuto problemi con quello. Ma le istruzioni sono banalmente modificabili per woff:

  • Apri un'applicazione console con privilegi di amministratore.
  • Navigazione verso la directory IIS Express. Questo vive sotto Programmi o Programmi (x86)
  • Esegui il comando:

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

Risolto il mio problema e non dovevo fare confusione con alcune confusioni confuse (come se dovessi aggiungere il supporto per i verbi PUTe DELETE). Sìì!


4

Grazie per questo post Ho fatto in modo che funzionasse usando modelli di baffi nel mio progetto mvc asp.net che ho usato quanto segue, e ha funzionato per me.

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

3

Non sto usando IIS Express ma sto sviluppando con il mio IIS 7 completo locale.

Quindi, se qualcun altro sta provando a farlo, ho dovuto aggiungere il tipo mime per woff tramite IIS Manager

Tipi Mime >> Fai clic su Aggiungi collegamento a destra, quindi inserisci Estensione: .woff Tipo MIME: application / font-woff


Grazie, questo mi ha permesso di riavviare un progetto. Le cose andavano bene con IIS7.5 con me, ma avevo Win8 e IIS8 e le mappature nella configurazione web del sito venivano duplicate con la configurazione IIS, causando errori per qualsiasi risorsa statica richiesta. Ho rimosso i duplicati e le cose stanno andando bene ora.
— rdmptn,

3

Per risolvere il problema, fai doppio clic sull'opzione di configurazione "Tipi MIME" mentre hai il nodo radice IIS selezionato nel pannello di sinistra e fai clic sul link "Aggiungi ..." nel pannello Azioni sulla destra. Questo farà apparire la seguente finestra di dialogo. Aggiungi l'estensione del file .woff e specifica "application / x-font-woff" come tipo MIME corrispondente:

inserisci qui la descrizione dell'immagine

Seguire lo stesso per woff2 con application / x-font-woff2


Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.