為Windows Azure Web站點新增MIME型別解決檔案下載失敗的問題

峻祁連發表於2014-03-18

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

相關文章