Dodaj mapowanie MIME w pliku web.config dla IIS Express

178

Muszę dodać nowe mapowanie MIME dla rozszerzeń plików .woff do IIS Express.

Jeśli dodam następujący fragment kodu do „applicationhost.config” IIS Express, działa to dobrze:

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

Ale tak naprawdę chciałbym dodać go do mojego „web.config”, aby nie każdy programista musiał lokalnie zmienić swój „applicationhost.config”.

Usunąłem go więc ponownie z pliku „applicationhost.config” i dodałem następujący fragment kodu do pliku „web.config” projektu:

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

Niestety nie działa to w ten sposób, ponieważ kiedy próbuję uzyskać dostęp do pliku .woff, pojawia się błąd HTTP 404.3.

Co ja robię źle?

Martin Buberl
źródło

Odpowiedzi:

309

Umieszczenie go w pliku „web.config” działa dobrze. Problem polegał na tym, że źle zrozumiałem typ MIME. Zamiast font/x-wofflub font/x-font-woffmusi to być application/font-woff:

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

Zobacz także tę odpowiedź dotyczącą typu MIME: https://stackoverflow.com/a/5142316/135441

Aktualizacja 4/10/2013

Spec jest teraz rekomendacją, a typ MIME jest oficjalnie: application/font-woff

Martin Buberl
źródło
2
Fwiw, Jak dodać typy mime z IIS7 Web.config i błędami 404 w IIS7 dla osadzonych plików czcionek .woff . Voila, choć rok spóźnił się na przyjęcie.
ruffin
5
Zgodnie z linkiem, zaktualizowanym typem MIME powinna być teraz: application / font-woff (zamiast przestarzałej aplikacji / x-font-woff).
longda,
1
@longda Dzięki za podpowiedź! Zaktualizowałem odpowiedź, aby to odzwierciedlić.
Martin Buberl
Czy ta metoda definiowania niestandardowych typów MIME w pliku web.config działa tylko w IIS Express? Próbowałem go w web.config wdrożonym na IIS 6 i to nie działa (wyrzuca 404). Jeśli dodam typ MIME za pomocą konsoli Menedżera usług IIS, to zadziała.
Walter Stabosz,
@WalterStabosz Powyższe działa dla IIS i IIS Express 7+. Jeśli korzystasz z usług IIS 6, musisz skonfigurować typy MIME na serwerze, zobacz Konfigurowanie typów MIME na IIS 6 .
Martin Buberl,
59

Jeśli ktoś napotka na to takie błędy, jak Błąd: nie można dodać zduplikowanego wpisu kolekcji typu „mimeMap” z unikalnym atrybutem klucza i / lub inne skrypty przestają działać podczas wykonywania tej poprawki, pomocne może być jej usunięcie w następujący sposób:

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

Przynajmniej to rozwiązało mój problem

Jastrząb
źródło
1
Dzięki, to zwiększa bezpieczeństwo podczas wdrażania :)
rdmptn
3
Dodaj to do mojej listy funkcji, które kocham w usługach IIS.
QueueHammer
1
Jeśli serwer zawiera już typ MIME, określenie go w pliku web.config prawdopodobnie spowoduje duplikat wyjątku.
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
źródło
6

Wiem, że to stare pytanie, ale ...

Właśnie zauważyłem, że moja instancja IISExpress nie wyświetlała plików woff, więc nie szukałam (znalazłem to), a potem znalazłam:

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

Podejrzewam, że moja instalacja obsługuje SVG, ponieważ nie miałem z tym problemu. Ale instrukcje są trywialnie modyfikowalne dla woff:

  • Otwórz aplikację konsoli z uprawnieniami administratora.
  • Nawigacja do katalogu IIS Express. Działa pod Program Files lub Program Files (x86)
  • Uruchom polecenie:

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

Rozwiązałem mój problem i nie musiałem zadzierać z kiepską konfiguracją (tak jak musiałem dodać obsługę czasowników PUTi DELETEczasowników). Tak!

JayC
źródło
4

Dzięki za ten post. Dostałem to działa na używanie szablonów wąsów w moim projekcie asp.net mvc. Użyłem następujących i zadziałało dla mnie.

<system.webServer>   
  <staticContent>
   <mimeMap fileExtension=".mustache" mimeType="text/html"/>
  </staticContent>
</system.WebServer>
Daman Singh
źródło
3

Nie używam IIS Express, ale rozwijam się przeciwko lokalnej wersji IIS 7.

Więc jeśli ktokolwiek tu jest i próbuje to zrobić, musiałem dodać typ MIME dla woff poprzez Menedżera IIS

Typy MIME >> Kliknij Dodaj link po prawej stronie, a następnie wprowadź Rozszerzenie: .woff Typ MIME: application / font-woff

Nathan Prather
źródło
Dzięki, dzięki temu mogłem przyspieszyć uruchamianie projektu. Z IIS7.5 wszystko było w porządku, ale dostałem Win8 i IIS8, a mapowania w web.config witryny były duplikowane z konfiguracją IIS, powodując błędy dla dowolnego żądanego zasobu statycznego. Usunąłem duplikaty i teraz wszystko działa dobrze.
rdmptn
3

Aby rozwiązać problem, kliknij dwukrotnie opcję konfiguracji „Typy MIME”, mając jednocześnie wybrany węzeł główny IIS w lewym panelu i kliknij link „Dodaj ...” w panelu Operacje po prawej stronie. Spowoduje to wyświetlenie następującego okna dialogowego. Dodaj rozszerzenie pliku .woff i określ „application / x-font-woff” jako odpowiedni typ MIME:

wprowadź opis zdjęcia tutaj

Postępuj tak samo dla woff2 z application / x-font-woff2

Tarun Gupta
źródło
0

Miałem problem z tym, że moja aplikacja ASP.NET 5.0 / MVC 6 obsługuje statyczne typy plików binarnych lub przegląda katalogi wirtualne. Wygląda na to, że jest to teraz wykonywane w Configure () przy uruchomieniu. Szybki starter można znaleźć na stronie http://docs.asp.net/en/latest/fundamentals/static-files.html .

Brian Wirt
źródło