为Windows Azure Web站点添加MIME类型解决文件下载失败的问题

这几天在倒腾Autodesk 360 Viewer,前面的文章也介绍过了,这将是一个全新的在线模型浏览工具。我做了个实验,把A360Viewer放在一个web 站点,然后发布到Windows Azure上去。目前A360 Viewer的模型是*。svf文件,可站点发布成功后,奇怪的事情发生了。通过Chrome浏览站点,页面文字图片显示均正常,唯独模型迟迟不加载。后来通过Chrome的开发者工具条(按F12)一看,原来所有的*.svf即模型文件都返回HTTP 404 file not found错误。这怎么可能呢?模型文件我明明已经上传到web服务器了啊,怎么会找不到呢?对了,我是用Chrome的开发者工具中 的network 选项卡发现*.svf文件没有下载成功的,其他浏览页有类似的工具:

image

后来想到,http 404可能不是仅仅是文件不存在,权限错误、MIME类似错误等也会引起这个问题,对于*.svf这样比较少见的扩展名,一般的web服务不认识也情有可原,不认识就不知道怎么处理,所以返回404错误。解决的办法就是为他加上MIME类型。在本地IIS管理服务器中我们可以这么操作(如图):

image image

不过我现在使用的是Windows Azure的web站点,不能访问到IIS管理器了,那怎么办呢?放Google搜索了一下,这个链接this link 给出了正确的方法,即修改web.config文件,把自定义的MIME类型加入到web.config文件中:

 

<?xml version="1.0"?>

<!--
  For more information on how to configure your ASP.NET application, please visit
  http://go.microsoft.com/fwlink/?LinkId=169433
  -->

<configuration>

    <system.web>
      <compilation debug="true" targetFramework="4.0" />
    </system.web>
 
  <system.webServer>
    <staticContent>
      <mimeMap fileExtension=".svf" mimeType="vector/vnd.svf" />
      <mimeMap fileExtension=".pack" mimeType="vector/vnd.svf" />
    </staticContent>
  </system.webServer>

 
</configuration>

 

重新发布后,一切都OK了。大多数时候错误信息能帮你定位问题所在,不过也有时候错误信息会和你开个小玩笑 ;)


Related Posts Plugin for WordPress, Blogger...