我正在使用three.js来加载web。来加载.obj 但是在Windows Azure运行Windows Server 2008中加载.obj时遇到问题 我使用谷歌浏览器浏览器,它给出了以下错误:
获取http://websiteaddress.net/webGL/obj/test.mtl 404(未找到)
甚至,我用他们原来的源代码来加载.obj文件它有同样的错误当我尝试浏览服务器中的其他图像文件时,我可以预览它 例如:(website.net/images/test.gif) - 我可以在浏览器中看到test.gif图像
但是当我导航到.obj时,我在浏览器中收到错误: (例如:website.net/obg/test.obj)
404 - 找不到文件或目录。 您要查找的资源可能已被删除,名称已更改或暂时不可用。
我可以在本地查看我的.obj,但是当我把它放在Azure中时却没有! 任何人都可以帮我吗?谢谢!
答案 0 :(得分:7)
[求助]加载.OBJ(Wavefront)文件在WINDOWS托管返回404错误[已解决]
当我使用Three.js并加载.obj文件时,在localhost中对我很有用,但是当从Windows Hosting运行文件时,它返回404 for .obj文件。
因此,我们需要将这些行添加到项目根文件夹的 web.config 文件中(如果项目根文件夹中没有该文件,则继续创建一个。 )
<强>的web.config 强>
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<staticContent>
<mimeMap fileExtension=".obj" mimeType="application/octet-stream" />
</staticContent>
</system.webServer>
</configuration>
将web.config放置到正确的位置并享受:)
答案 1 :(得分:0)
您需要在应用程序中添加mime类型定义,以告知IIS应如何提供此文件。应在web.config文件中定义错误消息中引用的mime映射。这是一个例子。
<system.webServer>
<staticContent>
<mimeMap fileExtension=".mp4" mimeType="video/mp4" />
<mimeMap fileExtension=".m4v" mimeType="video/m4v" />
</staticContent>
</system.webServer>
点击以下链接获取mime类型的完整列表:
答案 2 :(得分:0)
我找到了问题的答案,是因为文件扩展名.obj尚未映射到我的Azure服务器中的MIME类型:
检查以下链接,了解如何添加:
http://technet.microsoft.com/en-us/library/cc725608(v=ws.10).aspx
你可以在这里查看MIME类型:
http://filext.com/file-extension/OBJ
将地图.obj映射到MIME后,您将无需再加载它! :)
答案 3 :(得分:0)
我认为我应该在找到这篇文章后添加我最终做的事情。我使用.mtl文件作为THREE JS项目的材料(除了.obj之外)。由于我使用MTLLoader来获取材料(我的模型不仅仅是平面颜色),我不得不添加以下行:
<强>的web.config 强>
<!-- Instruct IISNODE to treate .obj+.mtl models as application/octet data -->
<configuration>
<system.webServer>
<staticContent>
<mimeMap fileExtension=".obj" mimeType="application/octet-stream" />
<mimeMap fileExtension=".mtl" mimeType="application/octet-stream" />
</staticContent>
</system.webServer>
</configuration>