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.