ฉันให้บริการไฟล์. JSON แต่ถึงแม้ว่าไฟล์นั้นจะมีอยู่ IIS ก็ยังคงมีข้อผิดพลาด 404 เมื่อมีการเข้าถึงไฟล์ใด ๆ ฉันลองเปลี่ยนชื่อไฟล์หนึ่งไฟล์เป็น. JS และใช้งานได้
ตัวชี้การตั้งค่าใดที่อาจทำให้เกิดปัญหานี้
ฉันให้บริการไฟล์. JSON แต่ถึงแม้ว่าไฟล์นั้นจะมีอยู่ IIS ก็ยังคงมีข้อผิดพลาด 404 เมื่อมีการเข้าถึงไฟล์ใด ๆ ฉันลองเปลี่ยนชื่อไฟล์หนึ่งไฟล์เป็น. JS และใช้งานได้
ตัวชี้การตั้งค่าใดที่อาจทำให้เกิดปัญหานี้
คำตอบ:
โดยค่าเริ่มต้น IIS ใน W2K3 ขึ้นไปจะไม่แสดงไฟล์ที่ไม่ใช่ประเภท MIME ที่รู้จัก (แทนที่จะส่งคืนข้อผิดพลาด 404)
คุณต้องเพิ่มประเภท MIME ให้กับ IIS เพื่อให้สามารถใช้งานไฟล์ประเภทนั้นได้ คุณสามารถตั้งค่าได้ที่ระดับไซต์หรือระดับเซิร์ฟเวอร์
ในการตั้งค่านี้สำหรับเซิร์ฟเวอร์ทั้งหมด:
ผมมีปัญหาเดียวกัน. IIS ทำบางสิ่งที่เรียกว่าการกรองชนิด MIME หากไม่ทราบประเภท MIME ของไฟล์นามสกุลเฉพาะมันจะส่งคืนข้อผิดพลาด 404
ใน IIS <7: เปิดคุณสมบัติไซต์ (หรือเซิร์ฟเวอร์) คลิกที่แท็บHTTP-Header คลิกที่ปุ่มประเภท MIME เพิ่มประเภทไฟล์ * ด้วย MIME type "application / octet-stream"
สำหรับ IIS 7: เปิดตัวจัดการ IIS คลิกเซิร์ฟเวอร์หรือเว็บไซต์ ดับเบิลคลิกไอคอนฟีเจอร์MIME Types ในบานหน้าต่างการดำเนินการคลิกเพิ่ม เติมช่อง "นามสกุลไฟล์ชื่อ" ด้วย * และกล่องชนิด MIME พร้อมกับ "application / octet-stream"
ฉันเพิ่มประเภท MIME .json
- text/json
ในไซต์ใน IIS เพื่อดูในเบราว์เซอร์เป็นข้อความ
หากต้องการรวมคำตอบเป็นคำตอบทั่วไปอีกหนึ่งข้อ:
ข้อสังเกตมาที่นี่:
หากคุณประสบปัญหาประเภทนี้ให้เปิดไฟล์บันทึกการใช้เว็บของเว็บไซต์และดูรหัสสถานะย่อย (เช่น 404 3) เพื่อพิจารณาว่าทำไมเว็บไซต์ของคุณจึงไม่แสดงเนื้อหาสำหรับ IIS 6 หรือ
ใน IIS 7
ฉันมีปัญหานี้ด้วย - และปัญหาก็คือการอนุญาตไฟล์ในโฟลเดอร์ที่เก็บไฟล์ json ผมตอบคำถามที่คล้ายกันที่นี่
คนเหล่านี้ถูกต้องแล้วที่จะบอกว่าคุณต้องเพิ่มประเภท MIME
ชนิด MIME เปิดใช้งานส่วนขยายไฟล์บนเซิร์ฟเวอร์และตัวจัดการการแมปจะบอก IIS ว่าจะทำอย่างไรกับมัน
ดังนั้นคุณต้องเพิ่ม Mapping Handlerและคุณต้องมีฟีเจอร์ Windows ชื่อClassic Asp ติดตั้งเพื่อจัดการการแมป
Handler Mappings
Add a Script Map
*.json
C:\WINDOWS\system32\inetsrv\asp.dll
JSON
(คุณสามารถเรียกมันว่าอะไรก็ได้ที่คุณต้องการ)นอกจากนี้บางคนจะบอกให้คุณใช้ `แอปพลิเคชัน / x-javascript 'เป็นแอปพลิเคชันประเภท mime แต่ JSON ไม่ใช่ javascript ต่อ se (มันเป็นชุดย่อย) และดังนั้นควรเป็น' application / json 'แทน เนื่องจากเป็นชนิดสื่อบันทึกที่ลงทะเบียนโดย IANA สำหรับ JSON