我正在提供 .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以处理映射。
添加映射处理程序的方法如下:
- 打开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 媒体类型。