这几天在倒腾Autodesk 360 Viewer,前面的文章也介绍过了,这将是一个全新的在线模型浏览工具。我做了个实验,把A360Viewer放在一个web 站点,然后发布到Windows Azure上去。目前A360 Viewer的模型是*。svf文件,可站点发布成功后,奇怪的事情发生了。通过Chrome浏览站点,页面文字图片显示均正常,唯独模型迟迟不加载。后来通过Chrome的开发者工具条(按F12)一看,原来所有的*.svf即模型文件都返回HTTP 404 file not found错误。这怎么可能呢?模型文件我明明已经上传到web服务器了啊,怎么会找不到呢?对了,我是用Chrome的开发者工具中 的network 选项卡发现*.svf文件没有下载成功的,其他浏览页有类似的工具:
后来想到,http 404可能不是仅仅是文件不存在,权限错误、MIME类似错误等也会引起这个问题,对于*.svf这样比较少见的扩展名,一般的web服务不认识也情有可原,不认识就不知道怎么处理,所以返回404错误。解决的办法就是为他加上MIME类型。在本地IIS管理服务器中我们可以这么操作(如图):
不过我现在使用的是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了。大多数时候错误信息能帮你定位问题所在,不过也有时候错误信息会和你开个小玩笑 ;)