local-storage - X3DOM ImageTexture url找不到本地文件
问题描述
我正在尝试制作一个包含访问本地文件的“ImageTexture”的 X3DOM 框形状。但是,当我给“url”属性一个 https:// 链接时,它似乎只能找到我的图片。这是我的代码和本地图片文件和html doc的文件夹设置;“index.html”是我的代码来自的 html 文件,“one.png”是我要加载到形状上的 png 图片:
<transform translation = "1.75 0 0">
<shape>
<appearance>
<!--<material diffuseColor = "0 1 1"></material>-->
<ImageTexture url="one.png"></ImageTexture>
</appearance>
<box size = "0 4 4"/>
</shape>
</transform>
.
├── index.html
├── one.png
├── pics
│ ├── 1.png
│ ├── 2.jpeg
│ ├── 3.jpeg
│ ├── 4.png
│ ├── 5.png
│ └── 6.jpeg
├── style.css
├── test.html
├── x3dom.css
└── x3dom-full.js
1 directory, 12 files
当我使用“材料”标签时,该框会出现,而不是来自本地文件的图像。我正在使用最新版本的 x3d - 1.8.1,图像不显示可能是什么问题?
解决方案
原因很简单:X3DOM 使用XMLHttpRequest
的不是file://
协议(尽管 MDN 另有说明https://developer.mozilla.org/de/docs/Web/API/XMLHttpRequest)。
但是,您可以尝试通过指定完整路径来绕过它:对于 Linux/Mac:
<transform translation = "1.75 0 0">
<shape>
<appearance>
<!--<material diffuseColor = "0 1 1"></material>-->
<ImageTexture url="file:///home/bob/x3dom/one.png"></ImageTexture>
</appearance>
<box size = "0 4 4"/>
</shape>
</transform>
对于 Windows:
<transform translation = "1.75 0 0">
<shape>
<appearance>
<!--<material diffuseColor = "0 1 1"></material>-->
<ImageTexture url="file://C:/path/to/one.png"></ImageTexture>
</appearance>
<box size = "0 4 4"/>
</shape>
</transform>
此外,在过去,您必须将一些标志传递给浏览器才能使其成为可能,请参阅https://stackoverflow.com/a/30701845/698496和How to launch html using Chrome at "--allow-file-access -from-files”模式?
如果您不熟悉运行 Apache 或 IIS,您可以使用简单的 Python 服务器:https ://doc.x3dom.org/gettingStarted/pythonSimpleHTTP/index.html
推荐阅读
- r - 从 ggplot2 中的小图例框中删除边框和颜色
- python - 使用 python 发出 post 请求时如何修复解析错误?
- python - Django 表单密码 TypeError: __init__() got an unexpected keyword argument 'widget'
- git - Git推送文件夹但不是内容?
- c++ - coredump 用于字符串排列代码
- django - 前端的 Django 数据库过滤器
- python - 如何在 python 中应用循环模式正则表达式?
- angular - 使用 ngx-bootstrap modal 将数据传递给 modal
- node.js - 如何使用 post build 在 heroku 上构建多个 React 应用程序
- html - 更改 Bootstrap Navbar 3.4.1 的字体颜色