IIS 无法提供某些文件扩展名

IIS 无法提供某些文件扩展名

我正在提供 .JSON 文件,但即使文件存在,当访问任何文件时,IIS 仍会抛出 404 错误。我尝试将其中一个文件重命名为 .JS,成功了。

有谁指出哪种设置会导致此问题?

答案1

默认情况下,W2K3 及更高版本中的 IIS 不会提供其不知道的 MIME 类型的文件(而是返回 404 错误)。

您需要向 IIS 添加 MIME 类型,以允许它提供该类型的文件。您可以在站点级别或服务器级别进行设置。

要为整个服务器设置此项:

  • 在 IIS 管理器中打开服务器的属性,然后单击“MIME 类型”
  • 点击“新建”。扩展名输入“JSON”,MIME 类型输入“application/json”。

答案2

我遇到了同样的问题。IIS 执行称为 MIME 类型过滤的操作。如果它不知道特定文件扩展名的 MIME 类型,则会返回 404 错误。

在 IIS <7 上: 打开站点(或服务器)属性。单击HTTP 标头选项卡。点击MIME 类型按钮。添加 MIME 类型为“application/octet-stream”的文件类型 *。

对于 IIS 7: 打开 IIS 管理器。单击服务器或网站。双击MIME 类型功能图标。在操作窗格中,单击添加. 在“文件扩展名”框中填入 *,在 MIME 类型框中填入“application/octet-stream”。

答案3

我在 IIS 中将 MIME 类型.json-添加text/json到站点,以便在浏览器中以文本形式查看。

答案4

我也遇到了这个问题 - 问题出在存储 json 文件的文件夹的文件权限上。我回答了一个这里有类似的问题

这些人说您需要添加 MIME 类型都是正确的。

MIME 类型启用服务器上的文件扩展名,并且映射处理程序告诉 IIS 如何处理它。

因此你还必须添加映射处理程序,为此你必须拥有名为安装经典 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 媒体类型。

相关内容