IIS 無法提供某些檔案副檔名

IIS 無法提供某些檔案副檔名

我正在提供 .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為了處理映射。

以下是新增映射處理程序的方法:

  1. 開啟IIS7管理器
  2. 轉到 IIS 伺服器的屬性(或僅轉到站點,如果您不需要全域設定)
  3. 點選Handler Mappings
  4. 點選Add a Script Map
  5. 輸入屬性:
    • 請求路徑:*.json
    • 可執行檔:C:\WINDOWS\system32\inetsrv\asp.dll
    • 名稱:(JSON你可以隨意稱呼它)
  6. 點擊“確定”,您就完成了。它應該開始工作,並且您不需要重置 IIS。

另外,有些人會告訴你使用“application/x-javascript”作為 mime 類型應用程序,但 JSON 不是 javascript,本身(它但是,它是一個子集),因此它應該是“application/json”,因為它是 IANA 註冊的 JSON 媒體類型。

相關內容