
我正在提供 .JSON 文件,但即使該文件存在,當訪問任何文件時,IIS 仍會拋出 404 錯誤。我嘗試將其中一個文件重命名為 .JS,並且它有效。
任何指針什麼設定可能會導致此問題?
答案1
預設情況下,W2K3 及更高版本中的 IIS 不會提供不屬於它所了解的 MIME 類型的檔案(而是傳回 404 錯誤)。
您需要在 IIS 中新增 MIME 類型,以允許它提供該類型的檔案。您可以在網站層級或伺服器層級進行設定。
若要為整個伺服器設定此項目:
- 在 IIS 管理員中開啟伺服器的屬性,然後按一下 MIME 類型
- 按一下“新建”。輸入“JSON”作為副檔名,輸入“application/json”作為 MIME 類型。
答案2
我有同樣的問題。 IIS 執行稱為 MIME 類型過濾的操作。如果它不知道特定檔案副檔名的 MIME 類型,則會傳回 404 錯誤。
在 IIS <7 上: 開啟網站(或伺服器)屬性。點選HTTP 標頭標籤。點選MIME 類型按鈕。新增檔案類型 * 和 MIME 類型「application/octet-stream」。
對於 IIS 7: 開啟 IIS 管理器。點選伺服器或網站。按兩下MIME 類型功能圖示。在操作窗格中,按一下添加。使用 * 填滿「檔案副檔名」框,使用「application/octet-stream」填滿 MIME 類型框。
答案3
我將 MIME 類型.json
-新增text/json
到 IIS 中的站點,以便在瀏覽器中以文字形式查看。
答案4
我也遇到了這個問題 - 結果問題出在儲存 json 檔案的資料夾的檔案權限。我回答了一個類似的問題在這裡。
這些人說您需要添加 MIME 類型都是正確的。
MIME 類型在伺服器上啟用檔案副檔名,並且映射處理程序告訴 IIS 如何處理它。
所以你還必須新增映射處理程序,為此你必須將 Windows 功能稱為安裝經典 Asp為了處理映射。
以下是新增映射處理程序的方法:
- 開啟IIS7管理器
- 轉到 IIS 伺服器的屬性(或僅轉到站點,如果您不需要全域設定)
- 點選
Handler Mappings
- 點選
Add a Script Map
- 輸入屬性:
- 請求路徑:
*.json
- 可執行檔:
C:\WINDOWS\system32\inetsrv\asp.dll
- 名稱:(
JSON
你可以隨意稱呼它)
- 請求路徑:
- 點擊“確定”,您就完成了。它應該開始工作,並且您不需要重置 IIS。
另外,有些人會告訴你使用“application/x-javascript”作為 mime 類型應用程序,但 JSON 不是 javascript,本身(它是但是,它是一個子集),因此它應該是“application/json”,因為它是 IANA 註冊的 JSON 媒體類型。