Fügen Sie in web.config für IIS Express eine MIME-Zuordnung hinzu

178

Ich muss IIS Express eine neue MIME-Zuordnung für .woff-Dateierweiterungen hinzufügen.

Wenn ich der "applicationhost.config" von IIS Express das folgende Snippet hinzufüge, funktioniert es einwandfrei:

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

Aber ich möchte es tatsächlich zu meiner "web.config" hinzufügen, damit nicht jeder Entwickler seine "applicationhost.config" lokal ändern muss.

Also habe ich es wieder aus der Datei "applicationhost.config" entfernt und der "web.config" des Projekts das folgende Snippet hinzugefügt:

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

Leider scheint es nicht so zu funktionieren, denn wenn ich versuche, auf eine .woff-Datei zuzugreifen, erhalte ich einen HTTP 404.3-Fehler.

Was mache ich falsch?

Martin Buberl
quelle

Antworten:

309

Das Einfügen in die "web.config" funktioniert einwandfrei. Das Problem war, dass ich den MIME-Typ falsch verstanden habe. Anstelle von font/x-woffoder font/x-font-woffmuss es sein application/font-woff:

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

Siehe auch diese Antwort zum MIME-Typ: https://stackoverflow.com/a/5142316/135441

Update 10.04.2013

Spec ist jetzt eine Empfehlung und der MIME-Typ ist offiziell: application/font-woff

Martin Buberl
quelle
5
Laut Link sollte der aktualisierte MIME-Typ jetzt lauten: application / font-woff (anstelle von veralteter Anwendung / x-font-woff).
Longda
1
@ Longda Danke für diesen Hinweis! Ich habe die Antwort aktualisiert, um dies widerzuspiegeln.
Martin Buberl
Funktioniert diese Methode zum Definieren benutzerdefinierter MIME-Typen in der Datei web.config nur in IIS Express? Ich habe es in einer auf IIS 6 bereitgestellten web.config versucht und es funktioniert nicht (wirft 404). Wenn ich den MIME-Typ über die IIS Manager-Konsole hinzufüge, funktioniert dies.
Walter Stabosz
@WalterStabosz Das Obige funktioniert für IIS und IIS Express 7+. Wenn Sie mit IIS 6 arbeiten, müssen Sie MIME-Typen auf dem Server konfigurieren. Weitere Informationen finden Sie unter Konfigurieren von MIME-Typen unter IIS 6 .
Martin Buberl
59

Wenn jemand auf Fehler wie Fehler stößt: Es kann kein doppelter Sammlungseintrag vom Typ 'mimeMap' mit eindeutigem Schlüsselattribut hinzugefügt werden und / oder andere Skripte funktionieren bei diesem Fix nicht mehr. Es kann hilfreich sein, ihn zuerst wie folgt zu entfernen:

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

Zumindest hat das mein Problem gelöst

Falke
quelle
1
Vielen Dank, das
erhöht die
3
Fügen Sie dies meiner Liste der Funktionen hinzu, die ich an IIS liebe.
QueueHammer
1
Wenn der Server bereits einen MIME-Typ enthält, führt die Angabe in der web.config wahrscheinlich zu einer doppelten Ausnahme.
Der Muffin-Mann
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
quelle
6

Ich weiß, das ist eine alte Frage, aber ...

Ich habe gerade bemerkt, dass meine Instanz von IISExpress keine Woff-Dateien bereitstellt, also habe ich nicht gesucht (gefunden) und dann gefunden:

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

Ich nehme an, meine Installation unterstützt SVG, da ich damit kein Problem hatte. Aber die Anweisungen sind für woff trivial modifizierbar:

  • Öffnen Sie eine Konsolenanwendung mit Administratorrechten.
  • Navigation zum IIS Express-Verzeichnis. Dies befindet sich unter Programme oder Programme (x86)
  • Führen Sie den folgenden Befehl aus:

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

Ich habe mein Problem gelöst und musste mich nicht mit einer beschissenen Konfiguration herumschlagen (als müsste ich Unterstützung für die Verben PUTund hinzufügen DELETE). Yay!

JayC
quelle
4

Danke für diesen Beitrag. Ich habe dies für die Verwendung von Schnurrbart-Vorlagen in meinem asp.net mvc-Projekt funktioniert. Ich habe Folgendes verwendet, und es hat für mich funktioniert.

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

Ich verwende IIS Express nicht, sondern entwickle es mit meinem lokalen vollständigen IIS 7.

Wenn also jemand anderes hier ist, um das zu versuchen, musste ich den MIME-Typ für Woff über IIS Manager hinzufügen

MIME- Typen >> Klicken Sie rechts auf den Link Hinzufügen und geben Sie dann Erweiterung: .woff ein. MIME-Typ: application / font-woff

Nathan Prather
quelle
Vielen Dank, das hat mich auf den neuesten Stand gebracht, ein Projekt wieder zum Laufen zu bringen. Mit IIS7.5 war alles in Ordnung, aber ich habe Win8 und IIS8 erhalten, und Zuordnungen in der web.config der Site wurden mit der IIS-Konfiguration dupliziert, was zu Fehlern für alle angeforderten statischen Ressourcen führte. Ich habe die Duplikate entfernt und die Dinge laufen jetzt gut.
Rdmptn
3

Um das Problem zu lösen, doppelklicken Sie auf die Konfigurationsoption "MIME-Typen", während der IIS-Stammknoten im linken Bereich ausgewählt ist, und klicken Sie im Bereich "Aktionen" rechts auf den Link "Hinzufügen ...". Daraufhin wird der folgende Dialog angezeigt. Fügen Sie die Dateierweiterung .woff hinzu und geben Sie "application / x-font-woff" als entsprechenden MIME-Typ an:

Geben Sie hier die Bildbeschreibung ein

Befolgen Sie dasselbe für woff2 mit application / x-font-woff2

Tarun Gupta
quelle
0

Ich hatte ein Problem damit, dass meine ASP.NET 5.0 / MVC 6-App statische Binärdateitypen bereitstellt oder virtuelle Verzeichnisse durchsucht. Es sieht so aus, als ob dies jetzt beim Start in Configure () erfolgt. Eine kurze Einführung finden Sie unter http://docs.asp.net/en/latest/fundamentals/static-files.html .

Brian Wirt
quelle