ChatGPT解决这个技术问题 Extra ChatGPT

在 web.config 中为 IIS Express 添加 MIME 映射

我需要为 .woff 文件扩展名添加一个新的 MIME 映射到 IIS Express。

如果我将以下代码段添加到 IIS Express 的“applicationhost.config”中,它可以正常工作:

<staticContent lockAttributes="isDocFooterFileName">
    <mimeMap fileExtension=".woff" mimeType="font/x-woff" />
    ...

但我实际上想将它添加到我的“web.config”中,这样并不是每个开发人员都需要在本地更改他们的“applicationhost.config”。

所以我再次从“applicationhost.config”文件中删除了它,并将以下代码段添加到项目的“web.config”中:

<system.webServer>
  ...
  <staticContent>
    <mimeMap fileExtension=".woff" mimeType="font/x-woff" />
  </staticContent>
</system.webServer>

不幸的是,它似乎并没有那样工作,因为当我尝试访问 .woff 文件时,我最终会遇到 HTTP 404.3 错误。

我究竟做错了什么?


C
Community

把它放在“web.config”中工作正常。问题是我弄错了 MIME 类型。而不是 font/x-woff font/x-font-woff 它必须是 application/font-woff

<system.webServer>
  ...
  <staticContent>
    <remove fileExtension=".woff" />
    <mimeMap fileExtension=".woff" mimeType="application/font-woff" />
  </staticContent>
</system.webServer>

另请参阅有关 MIME 类型的答案:https://stackoverflow.com/a/5142316/135441

2013 年 4 月 10 日更新

规范现在是一个建议,MIME 类型正式为:application/font-woff


根据链接,更新后的 mime 类型现在应该是:application/font-woff(而不是弃用的 application/x-font-woff)。
@longda 感谢您的提示!我更新了答案以反映这一点。
这种在 web.config 中定义自定义 MIME 类型的方法是否仅适用于 IIS Express?我已经在部署到 IIS 6 的 web.config 中进行了尝试,但它不起作用(抛出 404)。如果我通过 IIS 管理器控制台添加 MIME 类型,它确实可以工作。
@WalterStabosz 以上适用于 IIS 和 IIS Express 7+。如果您使用的是 IIS 6,则需要在服务器上配置 mime 类型,请参阅 configuring mime-types on IIS 6
H
Hawk

如果有人遇到此错误,例如错误:无法添加具有唯一键属性的“mimeMap”类型的重复集合条目和/或其他脚本在执行此修复时停止工作,它可能有助于首先将其删除,如下所示:

<staticContent>
  <remove fileExtension=".woff" />
  <mimeMap fileExtension=".woff" mimeType="application/font-woff" />
</staticContent>

至少这解决了我的问题


谢谢,这在部署时增加了一些安全性:)
将此添加到我喜欢的有关 IIS 的功能列表中。
如果服务器已经包含 mime 类型,在 web.config 中指定它可能会导致重复异常。
T
ThomasDC
<system.webServer>
     <staticContent>
      <remove fileExtension=".woff"/>
      <mimeMap fileExtension=".woff" mimeType="application/font-woff" />
      <mimeMap fileExtension=".woff2" mimeType="font/woff2" />
    </staticContent>
  </system.webServer>

J
JayC

我知道这是一个老问题,但是...

我只是注意到我的 IISExpress 实例没有提供 woff 文件,所以我没有搜索(找到这个)然后发现:

http://www.tomasmcguinness.com/2011/07/06/adding-support-for-svg-to-iis-express/

我想我的安装支持 SVG,因为我对此没有任何问题。但是这些指令对于 woff 来说是可以修改的:

打开具有管理员权限的控制台应用程序。

导航到 IIS Express 目录。这位于 Program Files 或 Program Files (x86) 下

运行命令:appcmd set config /section:staticContent /+[fileExtension='woff',mimeType='application/x-woff']

解决了我的问题,我不必弄乱一些糟糕的配置(就像我必须添加对 PUTDELETE 动词的支持)。耶!


D
Daman Singh

感谢这篇文章。我在我的 asp.net mvc 项目中使用了 mustache 模板,我使用了以下内容,它对我有用。

<system.webServer>   
  <staticContent>
   <mimeMap fileExtension=".mustache" mimeType="text/html"/>
  </staticContent>
</system.WebServer>

N
Nathan Prather

我没有使用 IIS Express,而是针对我的本地完整 IIS 7 进行开发。

因此,如果其他人在这里尝试这样做,我必须通过 IIS 管理器为 woff 添加 mime 类型

Mime Types >> 点击右侧的添加链接,然后输入 Extension: .woff MIME type: application/font-woff


谢谢,这让我加快了让项目再次运行的速度。我的 IIS7.5 一切正常,但我得到了 Win8 和 IIS8,并且站点 web.config 中的映射与 IIS 配置重复,导致请求的任何静态资源出错。我删除了重复项,现在一切正常。
T
Tarun Gupta

要解决此问题,请在左侧面板中选择 IIS 根节点的同时双击“MIME 类型”配置选项,然后单击右侧“操作”面板中的“添加...”链接。这将弹出以下对话框。添加 .woff 文件扩展名并将“application/x-font-woff”指定为相应的 MIME 类型:

https://i.stack.imgur.com/u7oGK.png

使用 application/x-font-woff2 对 woff2 进行相同操作


这适用于 IIS,但问题与 IIS Express 有关。有没有办法访问 IIS Express Web 服务器的此设置?
B
Brian Wirt

我在让我的 ASP.NET 5.0/MVC 6 应用程序提供静态二进制文件类型或浏览虚拟目录时遇到问题。看起来这现在是在启动时在 Configure() 中完成的。请参阅 http://docs.asp.net/en/latest/fundamentals/static-files.html 了解快速入门。