为什么 Js 无法从我的 Web 服务目录加载图像文件
Why can't Js load image files from my web service directory?
我有一个域www.foo.com
,并希望在那里托管一个JAX-RS/Maven/Jersey Web服务。目前,我正在将 Java 代码打包到 .war 文件中,并将其部署到 Apache Tomcat 8.0 Web 服务器上,以便在我的本地计算机上进行测试。
在/apache8/webapps/ROOT/index.html
(localhost:8080/
)中,我有脚本标记,XMLHttpRequest 对象在其中向localhost:8080/apiIndex/webapi/resource
发出 get 请求 - 它搜索我的 Web 服务目录中包含 150 个左右图像的资源文件夹。这些图像的完整路径名将返回到我的 Js 代码中,并且 Js 代码尝试从中创建图像以绘制到画布上。
问题是,我收到一个网络错误,说 Js 找不到/加载图像。
如何将 index.html 文件从 Web 服务目录中映射到我的域,以便当我将请求从我的域转发到服务器的端口 8080 时,我可以从我的 Web 服务包中的代码访问这些图像?这是tomcat webapps文件夹中的Js代码无法从我的API的src/java/resources文件夹中加载图像的原因吗?
首先:/apache8/webapps/index.html
听起来不像映射到localhost:8080
的东西。我宁愿期望/(根)Web 应用程序部署在/apache8/webapps/ROOT
(以及该文件夹中的索引.html文件)下。
我假设带有图像的Web应用程序部署在/apache8/webapps/apiIndex下。如果像您所说的那样生成图像的"完整路径名",则找不到:这些完整路径名是什么,您期望它们在哪里?您是否收到 404 错误代码或其他错误代码 - 例如 500?请在文件夹中发布URL和您的预期位置。
(这是作为答案而不是评论发布的,因为我希望最初的描述可以帮助您自己找到问题的根源,而第二部分实际上是在询问更多信息)
编辑:根据您的评论:恕我直言,您的网络服务应该返回对图像的http或https引用,而不是文件引用。如果有其他内容,您可能需要在它前面加上file:///home/...
,以便浏览器考虑获取它。但是,如果您的浏览器显示 http 文档,出于安全原因,它甚至可能不会跨越该域并嵌入本地文件资源:为什么任何 Web 服务器都会在本地磁盘上引用材料?
将您的图像放在可以通过http引用它们的地方,问题应该得到解决。
- 如何在谷歌字体加载时显示加载图像
- 预加载图像并插入DOM
- 加载图像时加载图标
- 在页面启动期间加载图像
- 预加载图像image.onload脚本MVC
- 可以't在我的React组件中加载图像
- 加载图像后调整HTML画布的大小
- HTML/JS github页面项目没有't在使用firefox运行时加载图像或声音
- 错误:$injector:modulerr加载图像时模块处于角度
- 谷歌地图加载后隐藏加载图像
- 在照片查看器(Javascript和jQuery)中异步加载图像时可能出现错误
- 正在从字节数组加载图像内容
- 网页上已有tinymce加载图像列表
- 单击提交按钮后加载图像将冻结
- 如何使用Express'正确加载图像;s的静态中间件
- 使用jquery即时加载图像
- Html5画布使用JCanvasScript加载图像
- Javascript使用JCanvaScript在画布中加载图像
- 使用jquery/ajax显示加载图像
- ajax缓存false无法加载图像