Thêm ánh xạ MIME trong web.config cho IIS Express


178

Tôi cần thêm ánh xạ MIME mới cho các phần mở rộng tệp .woff vào IIS Express.

Nếu tôi thêm đoạn mã sau vào "applicationationhost.config" của IIS Express thì nó hoạt động tốt:

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

Nhưng tôi thực sự muốn thêm nó vào "web.config" của mình để không phải mọi nhà phát triển đều cần thay đổi "applicationationhost.config" cục bộ.

Vì vậy, tôi đã xóa nó một lần nữa khỏi tệp "applicationationhost.config" và thêm đoạn mã sau vào "web.config" của dự án:

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

Thật không may, nó dường như không hoạt động theo cách đó bởi vì khi tôi cố gắng truy cập tệp .woff, tôi đã gặp phải lỗi HTTP 404.3.

Tôi đang làm gì sai?

Câu trả lời:


309

Đưa nó vào "web.config" hoạt động tốt. Vấn đề là tôi đã loại MIME sai. Thay vì font/x-woffhoặc font/x-font-woffnó phải là application/font-woff:

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

Xem thêm câu trả lời này về loại MIME: https://stackoverflow.com/a/5142316/135441

Cập nhật ngày 4/10/2013

Spec hiện là một đề xuất và loại MIME chính thức: application/font-woff



5
Theo liên kết, loại mime được cập nhật bây giờ phải là: application / font-woff (chứ không phải là ứng dụng / x-font-woff không dùng nữa).
longda

1
@longda Cảm ơn vì gợi ý đó! Tôi cập nhật câu trả lời để phản ánh điều đó.
Martin Buberl

Phương thức xác định loại MIME tùy chỉnh này trong web.config chỉ hoạt động trong IIS Express? Tôi đã thử nó trong web.config được triển khai lên IIS 6 và nó không hoạt động (ném 404). Nếu tôi thêm loại MIME thông qua Bảng điều khiển IIS Manager, nó sẽ hoạt động.
Walter Stabosz

@WalterStabosz Các công việc trên cho IIS và IIS Express 7+. Nếu bạn đang sử dụng IIS 6, bạn cần định cấu hình loại mime trên máy chủ, xem cấu hình loại mime trên IIS 6 .
Martin Buberl

59

Nếu bất kỳ ai gặp phải lỗi này như Lỗi: không thể thêm mục nhập bộ sưu tập trùng lặp loại 'mimeMap' với thuộc tính khóa duy nhất và / hoặc các tập lệnh khác ngừng hoạt động khi thực hiện sửa lỗi này, có thể giúp xóa nó trước như sau:

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

Ít nhất điều đó đã giải quyết vấn đề của tôi


1
Cảm ơn, điều đó thêm một số an toàn khi triển khai :)
ndmptn

3
Thêm phần này vào danh sách các tính năng tôi yêu thích về IIS.
Queue Hammer

1
Nếu máy chủ đã chứa loại mime, việc chỉ định nó trong web.config có thể gây ra ngoại lệ trùng lặp.
Người đàn ông Muffin

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

6

Tôi biết đây là một câu hỏi cũ, nhưng ...

Tôi chỉ nhận thấy phiên bản IISExpress của mình không phục vụ các tệp woff, vì vậy tôi đã không tìm kiếm (Tìm thấy cái này) và sau đó tìm thấy:

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

Tôi cho rằng cài đặt của tôi có hỗ trợ cho SVG vì tôi không gặp vấn đề gì với điều đó. Nhưng các hướng dẫn có thể sửa đổi tầm thường cho woff:

  • Mở một ứng dụng giao diện điều khiển với quyền riêng tư của quản trị viên.
  • Điều hướng đến thư mục IIS Express. Điều này nằm trong Tệp chương trình hoặc Tệp chương trình (x86)
  • Chạy lệnh:

    appcmd đặt cấu hình / phần: staticContent / + [fileExtension = 'woff', mimeType = 'application / x-woff']

Đã giải quyết vấn đề của tôi và tôi không phải gặp rắc rối với một số cấu hình nhàu nát (như tôi phải thêm hỗ trợ cho các động từ PUTDELETEđộng từ). Yay!


4

Cảm ơn cho bài viết này. Tôi đã làm việc này để sử dụng các mẫu ria mép trong dự án mvc asp.net của tôi, tôi đã sử dụng như sau và nó hoạt động với tôi.

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

3

Tôi không sử dụng IIS Express nhưng đang phát triển dựa trên IIS 7 Full Local của tôi.

Vì vậy, nếu bất cứ ai khác ở đây cố gắng làm điều đó, tôi đã phải thêm loại mime cho woff thông qua IIS Manager

Các loại Mime >> Nhấp vào Thêm liên kết ở bên phải và sau đó nhập Tiện ích mở rộng: .woff Loại MIME: application / font-woff


Cảm ơn, điều này đã giúp tôi tăng tốc với việc một dự án chạy lại. Mọi thứ đều ổn với IIS7.5 với tôi, nhưng tôi đã nhận được Win8 và IIS8 và ánh xạ trong web.config của trang web đã bị trùng lặp với cấu hình IIS, gây ra lỗi cho bất kỳ tài nguyên tĩnh nào được yêu cầu. Tôi đã loại bỏ các bản sao và mọi thứ đang chạy tốt.
ndmptn

3

Để giải quyết vấn đề, bấm đúp vào tùy chọn cấu hình "Loại MIME" trong khi có nút gốc IIS được chọn trong bảng điều khiển bên trái và nhấp vào liên kết "Thêm ..." trong bảng Hành động ở bên phải. Điều này sẽ đưa ra hộp thoại sau đây. Thêm phần mở rộng tệp .woff và chỉ định "application / x-font-woff" là loại MIME tương ứng:

nhập mô tả hình ảnh ở đây

Thực hiện tương tự cho woff2 với application / x-font-woff2


Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.