2013-09-05 111 views
6

我正在使用ThreeJS和WebGL構建一個小型3D應用程序。我故意選擇不將模型轉換爲ThreeJS compatible .json文件,而是開始構建導入器。它可以工作,但我也計劃讓應用程序決定使用文件擴展名和MIME類型來加載哪種類型的模型,如果第一種模式未知,則稍後使用。Wavefront的OBJ和MTL的MIME類型

我讀過的地方,MIME類型應該是application/wavefront-obj,這將有點怪異,因爲也有model樹,但無論如何,好吧。儘管瀏覽IANA網站獲取此文件類型不會產生任何結果。

我錯過了什麼嗎?

+1

我可以通過Google快速查找到的唯一參考資料是[Wikipedia](http://en.wikipedia.org/wiki/Wavefront_.obj_file),其中顯示了「text/plain」。 – tripleee

+0

@tripleee對我的需求太模糊,但至少有一個確認我沒有錯過某些明顯的東西......我想我會堅持僞MIME。不管怎麼說,多謝拉。 – Kiruse

回答

5

According to wikipedia,它是「text/plain」.obj。

我猜它是「text/plain的」爲.mtl文件以及,因爲有一個在他們的文字和,因爲它「是波前技術爲ASCII文件定義的標準」

+0

我知道這是ASCII文件的標準,但它似乎太......不明確。我構建的(自動)系統決定如何根據不同的因素解析資源,其中之一是MIME類型。由於它是一個ASCII碼,所以我不能依賴任何幻數。另外,JavaScript中的文件處理首先並不是那麼簡單......我會多給點時間,謝謝你試圖吸引更多的注意力。一旦賞金到期,我會將這個迴應標記爲答案。 – Kiruse

+0

當然可以。我自己通過使用ajax獲取服務器gzip .obj文件(以節省時間和帶寬)來解決這個問題。需要知道mime-type在nginx config中指定它。 – kangax

+0

顯然'text/plain'不夠具體,就像我的情況一樣。儘管我認爲除此之外還沒有別的,也許有人有另一種解決方案。我的情況是通過簡單地使用假MIME滿足,但我不確定nginx。 – Kiruse

0

考慮到他們至少在互聯網上踢了20年,我很驚訝地發現IANA database中沒有任何wavefront obj文件。我很樂意與其他人合作建立正式的MIME類型。

在此之前,根據RFC 6838,「個人或浮華樹」 3.3節,你可以用自己的媒體類型此,像text/prs.wavefront-obj,除了text/plain。這樣,您可以使用HTTP Accept標題在響應中協商適當的MIME類型。

+0

我很驚訝在這方面很難找到一些東西。我想.obj有些過時,但它的簡單性肯定會在某處找到應用程序。 – Kiruse

+0

我不認爲obj已經過時了。對於許多應用程序之間的幾何體而言,這是一種非常實用的「通用基礎」格式 – legalize

+0

是的。這就是我特別說過時的原因。我認爲唯一不足的是動態和物理。它僅適用於靜態模型,因此它對動畫的價值顯然相當低。在這方面,人們自然會喜歡不同的格式。物理學方面與以前一致。 – Kiruse

1

你需要更新你的web.config和引用添加到OBJ文件類型

<?xml version="1.0" encoding="UTF-8"?> 
<configuration> 
    <system.webServer> 
     <staticContent>   
      <remove fileExtension=".obj" /> 
      <mimeMap fileExtension=".obj" mimeType="text/plain" /> 
     </staticContent> 
    </system.webServer> 
</configuration> 
0

使用MIME類型 「application /對象」 爲.obj文件。它適用於Chrome,Safari和FireFox。