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?

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



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


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>

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!


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>

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


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


Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.