這幾天在倒騰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了。大多數時候錯誤資訊能幫你定位問題所在,不過也有時候錯誤資訊會和你開個小玩笑 ;)