如何在ASP.NET的web.config配置文件中添加MIME类型
常常有一些特殊的MIME类型是IIS中没有的,一般来说要我们自己手动添加。如果网站经常更换服务器或者网站代码是提供给多个用户使用,那么会造成网站中用到的特殊的MIME类型要经常性的在IIS上配置。这里考虑到一个网站配置通用性问题,所以我们可以将MIME类型添加到ASP.NET网站的配置文件中,这样用户就不用一直配置IIS了。
一般来说我们是将MIME的这部份信息配置在system.webServer节点的staticContent节点中,配置的时候只要设置mimeMap节点中的fileExtension文件扩展名属性和mimeType这个MIME类型属性。
大概的代码如下(代码中添加的扩展名和MIME类型只是作为示例):
<system.webServer> <staticContent> <remove fileExtension=".woff" /> <remove fileExtension=".xap" /> <remove fileExtension=".xaml" /> <mimeMap fileExtension=".woff" mimeType="font/x-font-woff" /> <mimeMap fileExtension=".xap" mimeType="xapapplication/x-silverlight"/> <mimeMap fileExtension=".xaml" mimeType="application/xaml+xml"/> </staticContent> </system.webServer>
可以看到这里添加了3个IIS默认中没有的扩展名:
- .woff (woff字体)
- .xap (Silverlight编译后的文件)
- .xaml (可扩展应用程序标记语言,eXtensible Application Markup Language)
这里要额外注意一点的是,在上面代码中我还声明了remove这个移除节点,这是为了防止重复添加MIME类型导致网站出现这个异常信息:“在唯一密钥属性“fileExtension”设置为“.woff”时,无法添加类型为“mimeMap”的重复集合项”,如果你的网站没有提示这个异常信息,或者能确定用户的IIS上一定没有配置这几个扩展名,那么remove节点就可以不用加。