เพิ่มการแมป MIME ใน web.config สำหรับ IIS Express


178

ฉันต้องเพิ่มการแมป MIME ใหม่สำหรับนามสกุลไฟล์. woff ลงใน IIS Express

ถ้าฉันเพิ่มตัวอย่างต่อไปนี้ใน "applicationhost.config" ของ IIS Express จะทำงานได้ดี:

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

แต่จริง ๆ แล้วฉันต้องการเพิ่มลงใน "web.config" ของฉันเพื่อไม่ให้นักพัฒนาทุกคนต้องเปลี่ยน "applicationhost.config" ในเครื่อง

ดังนั้นฉันจึงลบมันอีกครั้งจากไฟล์ "applicationhost.config" และเพิ่มตัวอย่างต่อไปนี้ใน "web.config" ของโครงการ:

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

น่าเสียดายที่ดูเหมือนจะไม่ทำงานอย่างนั้นเพราะเมื่อฉันพยายามเข้าถึงไฟล์. woff ฉันก็พบข้อผิดพลาด HTTP 404.3

ผมทำอะไรผิดหรือเปล่า?

คำตอบ:


309

วางไว้ใน "web.config" ทำงานได้ดี ปัญหาคือว่าฉันพิมพ์ผิดประเภท MIME แทนที่จะเป็นfont/x-woffหรือfont/x-font-woffต้องเป็นapplication/font-woff:

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

ดูคำตอบนี้เกี่ยวกับประเภท MIME ได้ที่: https://stackoverflow.com/a/5142316/135441

อัพเดท 4/10/2556

ข้อมูลจำเพาะตอนนี้เป็นคำแนะนำและประเภท MIME เป็นทางการ: application/font-woff



5
ตามการเชื่อมโยงประเภท mime ที่อัปเดตควรเป็น: application / font-woff (แทนที่จะเลิกใช้แอปพลิเคชัน / x-font-woff)
longda

1
@longda ขอบคุณสำหรับคำใบ้! ฉันปรับปรุงคำตอบเพื่อให้สะท้อนถึงสิ่งนั้น
Martin Buberl

วิธีนี้ในการกำหนดประเภท MIME ที่กำหนดเองใน web.config ใช้ได้กับ IIS Express หรือไม่ ฉันได้ลองใช้ web.config ที่ปรับใช้กับ IIS 6 แล้วและใช้งานไม่ได้ (ส่ง 404) หากฉันเพิ่มประเภท MIME ผ่านทางคอนโซลตัวจัดการ IIS จะทำงานได้
วอลเตอร์ Stabosz

@WalterStabosz ข้อมูลด้านบนใช้ได้กับ IIS และ IIS Express 7+ ถ้าคุณอยู่ใน IIS 6 คุณต้องกำหนดค่าประเภท MIME บนเซิร์ฟเวอร์ให้ดูที่การกำหนดค่าประเภท MIME บน IIS 6
Martin Buberl

59

หากใครพบสิ่งนี้ด้วยข้อผิดพลาดเช่นข้อผิดพลาด: ไม่สามารถเพิ่มรายการคอลเลกชันที่ซ้ำกันของประเภท 'mimeMap' ด้วยแอตทริบิวต์คีย์ที่ไม่ซ้ำกันและ / หรือสคริปต์อื่น ๆ หยุดทำงานเมื่อทำการแก้ไขนี้มันอาจช่วยลบออกก่อนดังนี้

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

อย่างน้อยก็แก้ปัญหาของฉัน


1
ขอบคุณที่เพิ่มความปลอดภัยบางอย่างเมื่อปรับใช้ :)
rdmptn

3
เพิ่มลงในรายการคุณลักษณะของฉันฉันชอบเกี่ยวกับ IIS
QueueHammer

1
หากเซิร์ฟเวอร์มีชนิด mime อยู่แล้วการระบุใน web.config อาจทำให้เกิดข้อยกเว้นซ้ำกัน
ผู้ชายมัฟฟิน

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

6

ฉันรู้ว่านี่เป็นคำถามเก่า แต่ ...

ฉันเพิ่งสังเกตเห็นอินสแตนซ์ของ IISExpress ของฉันไม่ได้ให้บริการไฟล์ woff ดังนั้นฉันจึงไม่ค้นหา (พบสิ่งนี้) แล้วพบ:

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

ฉันคิดว่าการติดตั้งของฉันรองรับ SVG เนื่องจากฉันไม่ได้มีปัญหากับมัน แต่คำแนะนำนั้นแก้ไขได้เล็กน้อยสำหรับ woff:

  • เปิดแอปพลิเคชันคอนโซลด้วยสิทธิ์ของผู้ดูแลระบบ
  • นำทางไปยังไดเรกทอรี IIS Express สิ่งนี้อยู่ภายใต้ Program Files หรือ Program Files (x86)
  • เรียกใช้คำสั่ง:

    appcmd ตั้งค่าคอนฟิก / ส่วน: staticContent / + [fileExtension = 'woff', mimeType = 'application / x-woff']

แก้ไขปัญหาของฉันและฉันไม่ต้องยุ่งกับการกำหนดค่า crummy บางอย่าง (เช่นฉันต้องเพิ่มการสนับสนุนสำหรับPUTและDELETEคำกริยา) เย้!


4

ขอบคุณสำหรับโพสต์นี้ ฉันได้สิ่งนี้ใช้สำหรับการใช้เทมเพลตหนวดในโครงการ asp.net mvc ของฉันฉันใช้สิ่งต่อไปนี้และได้ผลสำหรับฉัน

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

3

ฉันไม่ได้ใช้ IIS Express แต่พัฒนากับ Local Full IIS 7 ของฉัน

ดังนั้นหากใครได้รับที่นี่พยายามทำเช่นนั้นฉันต้องเพิ่มประเภท mime สำหรับ woff ผ่าน IIS Manager

ประเภท Mime >> คลิกเพิ่มลิงค์ด้านขวาจากนั้นป้อนส่วนขยาย: .woff ประเภท MIME: application / font-woff


ขอบคุณสิ่งนี้ทำให้ฉันเร่งความเร็วด้วยการทำให้โครงการทำงานอีกครั้ง สิ่งต่าง ๆ ใช้ได้กับ IIS7.5 กับฉัน แต่ฉันได้รับ Win8 และ IIS8 และการแมปใน web.config ของไซต์นั้นซ้ำซ้อนกับการกำหนดค่า IIS ทำให้เกิดข้อผิดพลาดสำหรับทรัพยากรแบบคงที่ที่ร้องขอ ฉันลบรายการที่ซ้ำกันและสิ่งต่าง ๆ กำลังทำงานได้ดีในขณะนี้
rdmptn

3

ในการแก้ปัญหาให้คลิกสองครั้งที่ตัวเลือกการกำหนดค่า "ประเภท MIME" ในขณะที่เลือกโหนดรูท IIS ในแผงด้านซ้ายและคลิกลิงก์ "เพิ่ม ... " ในแผงคำสั่งทางด้านขวา สิ่งนี้จะแสดงกล่องโต้ตอบต่อไปนี้ขึ้นมา เพิ่มนามสกุลไฟล์. woff และระบุ "application / x-font-woff" เป็นประเภท MIME ที่สอดคล้องกัน:

ป้อนคำอธิบายรูปภาพที่นี่

ทำตามสิ่งเดียวกันสำหรับ woff2 ด้วย application / x-font-woff2


0

ฉันมีปัญหาในการรับแอป ASP.NET 5.0 / MVC 6 ของฉันเพื่อให้บริการไฟล์ไบนารีคงที่หรือเรียกดูไดเรกทอรีเสมือน ดูเหมือนว่าตอนนี้จะเสร็จสิ้นใน Configure () เมื่อเริ่มต้น ดูhttp://docs.asp.net/en/latest/fundamentals/static-files.htmlเพื่อดูเบื้องต้น

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.