平时工作中经常发现,在iis中的站点明明配好了MIME的文件支持的配置。
但是过一段时间后发现该类型文件无法使用, 于是进到IIS查看MIME配置发现其扩展名支持的配置莫名其妙的消失了。
经研究才发现然来手动在MIME增加的配置都会在站点的web.config文件中保存,
由于我发布项目的时候替换了其web.config文件, 所有导致之前配置的MIME就莫名其妙的消失了。
所以对MIME的配置最好是直接在web.config文件中手动配置,而不要在IIS中点击MIME类型,然后添加。
一般我们要在配置文件中添加MIME Type,就得先使用remove节点删除掉要添加的MIME,防止重复。
配置方法:
大概的代码如下(代码中添加的扩展名和MIME类型只是作为示例):
1 2 3 4 5 6 7 8 9 10 11 |
<pre class="inline:true class:language-aspnet decode:1 " > <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> |
一般来说,我们之所以要在ASP.NET网站的web.config中添加MIME类型,是因为在IIS中并没有设置这个MIME类型,而且因为某些原因我们只能在网站的web.config配置文件中添加mimeMap(比如我们没有权限进入服务器等情况)。
这样就可以能出现一个问题:假设当前网站发布到新的服务器中,此时新服务器上的IIS默认已经有设置这个MIME类型,而我们网站web.config配置文件也设置了mimeMap的mimeType,这样重复添加MIME类型就会提示mimemap在集合项目设置中重复了!
所以正如上面的解决方法那样,要么使用remove节点删除重复,要么就在配置文件和IIS中二选一来设置。
但是如果要配置所有类型的支持的话就需要写很多, 所有为了方便起见我们可以配置一个通用的MIME,
1 |
<pre class="inline:true class:language-aspnet decode:1 " ><mimeMap fileExtension=".*" mimeType="application/octet-stream" /> |
一行代码搞定, 是不是很方便呢
浏览量: 23