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


178

我需要为.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错误。

我究竟做错了什么?

Answers:


309

将其放在“ web.config”中可以正常工作。问题是我弄错了MIME类型。代替font/x-wofffont/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

更新4/10/2013

现在推荐使用规范,并且MIME类型正式为: application/font-woff



5
根据链接,更新的mime类型现在应为:application / font-woff(而不是已弃用的application / x-font-woff)。
longda 2013年

1
@longda感谢您的提示!我更新了答案以反映这一点。
Martin Buberl 2013年

这种在web.config中定义自定义MIME类型的方法仅在IIS Express中有效吗?我已经在部署到IIS 6的web.config中进行了尝试,但它不起作用(引发404)。如果我通过IIS管理器控制台添加MIME类型,则可以正常工作。
Walter Stabosz 2013年

@WalterStabosz以上适用于IIS和IIS Express 7+。如果您使用的是IIS 6,则需要在服务器上配置mime-type,请参阅在IIS 6上配置mime-type
Martin Buberl 2013年

59

如果有人遇到此错误,例如错误:无法添加具有唯一键属性的类型为'mimeMap'的重复收集项,并且/或者其他脚本在执行此修复程序时停止工作,则可能有助于像这样首先将其删除:

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

至少那解决了我的问题


1
谢谢,这增加了部署时的安全性:)
rdmptn

3
将此添加到我喜欢IIS的功能列表中。
QueueHammer 2014年

1
如果服务器已经包含mime类型,则在web.config中指定它可能会导致重复异常。
松饼人

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

6

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

我只是注意到我的IISExpress实例不提供woff文件,因此我不进行搜索(找到了这个),然后发现:

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

我想我的安装支持SVG,因为我对此没有任何疑问。但是这些说明对于woff来说是微不足道的:

  • 打开具有管理员权限的控制台应用程序。
  • 导航到IIS Express目录。它位于“程序文件”或“程序文件(x86)”下
  • 运行命令:

    appcmd设置配置/ section:staticContent / + [fileExtension ='woff',mimeType ='application / x-woff']

解决了我的问题,而且我不必弄乱一些简陋的配置(例如我必须添加对PUTDELETE动词的支持)。好极了!


4

感谢这篇文章。我在asp.net mvc项目中使用了胡子模板,使之有效,我使用了以下方法,并且对我有用。

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

3

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

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

Mime类型>>单击右侧的“添加”链接,然后输入扩展名:.woff MIME类型:application / font-woff


谢谢,这使我加快了重新运行项目的速度。使用IIS7.5可以正常进行,但是我使用Win8和IIS8,并且站点的web.config中的映射与IIS配置重复,从而导致请求的任何静态资源出错。我删除了重复项,现在一切正常。
rdmptn

3

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

在此处输入图片说明

在woff2上跟随application / x-font-woff2


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.