我需要为 .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 错误。
我究竟做错了什么?
把它放在“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
如果有人遇到此错误,例如错误:无法添加具有唯一键属性的“mimeMap”类型的重复集合条目和/或其他脚本在执行此修复时停止工作,它可能有助于首先将其删除,如下所示:
<staticContent>
<remove fileExtension=".woff" />
<mimeMap fileExtension=".woff" mimeType="application/font-woff" />
</staticContent>
至少这解决了我的问题
<system.webServer>
<staticContent>
<remove fileExtension=".woff"/>
<mimeMap fileExtension=".woff" mimeType="application/font-woff" />
<mimeMap fileExtension=".woff2" mimeType="font/woff2" />
</staticContent>
</system.webServer>
我知道这是一个老问题,但是...
我只是注意到我的 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']
解决了我的问题,我不必弄乱一些糟糕的配置(就像我必须添加对 PUT
和 DELETE
动词的支持)。耶!
感谢这篇文章。我在我的 asp.net mvc 项目中使用了 mustache 模板,我使用了以下内容,它对我有用。
<system.webServer>
<staticContent>
<mimeMap fileExtension=".mustache" mimeType="text/html"/>
</staticContent>
</system.WebServer>
我没有使用 IIS Express,而是针对我的本地完整 IIS 7 进行开发。
因此,如果其他人在这里尝试这样做,我必须通过 IIS 管理器为 woff 添加 mime 类型
Mime Types >> 点击右侧的添加链接,然后输入 Extension: .woff MIME type: application/font-woff
要解决此问题,请在左侧面板中选择 IIS 根节点的同时双击“MIME 类型”配置选项,然后单击右侧“操作”面板中的“添加...”链接。这将弹出以下对话框。添加 .woff 文件扩展名并将“application/x-font-woff”指定为相应的 MIME 类型:
https://i.stack.imgur.com/u7oGK.png
使用 application/x-font-woff2 对 woff2 进行相同操作
我在让我的 ASP.NET 5.0/MVC 6 应用程序提供静态二进制文件类型或浏览虚拟目录时遇到问题。看起来这现在是在启动时在 Configure() 中完成的。请参阅 http://docs.asp.net/en/latest/fundamentals/static-files.html 了解快速入门。