为什么 Js 无法从我的 Web 服务目录加载图像文件?
Why can't Js load image files from my web service directory?
我有一个域 www.foo.com
并希望在那里托管一个 JAX-RS/Maven/Jersey 网络服务。目前,我正在将 Java 代码打包到一个 .war 文件中,并将其部署在 Apache Tomcat 8.0 网络服务器上,以便在我的本地计算机上进行测试。
在 /apache8/webapps/ROOT/index.html
(localhost:8080/
) 中,我有一个脚本标记,其中 XMLHttpRequest 对象向 localhost:8080/apiIndex/webapi/resource
发出获取请求 - 它在我的 Web 服务目录中搜索一个资源文件夹,其中包含150张左右的图片。这些图像的完整路径名返回到我的 Js 代码,并且 Js 代码尝试从中创建图像以绘制到 canvas。
问题是,我收到一个网络错误,提示 Js 无法 find/load 图片。
如何从我的 Web 服务目录中将 index.html 文件映射到我的域,以便当我从我的域向服务器的 8080 端口发送 ward 请求时,我可以访问那些来自我的网络服务包中代码的图像?这是 tomcat webapps 文件夹中的 Js 代码无法从我的 API 的 src/java/resources 文件夹加载图像的原因吗?
首先:/apache8/webapps/index.html
听起来不像映射到 localhost:8080
的东西。我更希望将 /(根)Web 应用程序部署在 /apache8/webapps/ROOT
下(以及该文件夹中的 index.html 文件)。
我假设您的带有图像的 Web 应用程序部署在 /apache8/webapps/apiIndex 下。如果像您所说的那样生成 "the full path names" 图像,则无法找到:那些完整路径名是什么,您希望它们在哪里?您是否收到 404 错误代码或其他错误代码 - 例如 500?请 post URL 和您在文件夹中的预期位置。
(这是 post 的答案而不是评论,因为我希望最初的描述能帮助您自己找到问题的根源,而第二部分实际上是在寻求更多信息)
编辑:根据您的评论:恕我直言,您的网络服务应该 return 对图像的 http 或 https 引用,而不是文件引用。如果还有其他问题,您可能需要在它前面加上 file:///home/...
前缀,以便浏览器考虑获取它。但是,如果您的浏览器显示 http 文档,出于安全原因,它甚至可能不会跨越该域并嵌入本地文件资源:为什么任何网络服务器都会在您的本地磁盘上引用 material?
将您的图片放在可以通过 http 引用它们的地方,问题就应该解决了。
我有一个域 www.foo.com
并希望在那里托管一个 JAX-RS/Maven/Jersey 网络服务。目前,我正在将 Java 代码打包到一个 .war 文件中,并将其部署在 Apache Tomcat 8.0 网络服务器上,以便在我的本地计算机上进行测试。
在 /apache8/webapps/ROOT/index.html
(localhost:8080/
) 中,我有一个脚本标记,其中 XMLHttpRequest 对象向 localhost:8080/apiIndex/webapi/resource
发出获取请求 - 它在我的 Web 服务目录中搜索一个资源文件夹,其中包含150张左右的图片。这些图像的完整路径名返回到我的 Js 代码,并且 Js 代码尝试从中创建图像以绘制到 canvas。
问题是,我收到一个网络错误,提示 Js 无法 find/load 图片。
如何从我的 Web 服务目录中将 index.html 文件映射到我的域,以便当我从我的域向服务器的 8080 端口发送 ward 请求时,我可以访问那些来自我的网络服务包中代码的图像?这是 tomcat webapps 文件夹中的 Js 代码无法从我的 API 的 src/java/resources 文件夹加载图像的原因吗?
首先:/apache8/webapps/index.html
听起来不像映射到 localhost:8080
的东西。我更希望将 /(根)Web 应用程序部署在 /apache8/webapps/ROOT
下(以及该文件夹中的 index.html 文件)。
我假设您的带有图像的 Web 应用程序部署在 /apache8/webapps/apiIndex 下。如果像您所说的那样生成 "the full path names" 图像,则无法找到:那些完整路径名是什么,您希望它们在哪里?您是否收到 404 错误代码或其他错误代码 - 例如 500?请 post URL 和您在文件夹中的预期位置。
(这是 post 的答案而不是评论,因为我希望最初的描述能帮助您自己找到问题的根源,而第二部分实际上是在寻求更多信息)
编辑:根据您的评论:恕我直言,您的网络服务应该 return 对图像的 http 或 https 引用,而不是文件引用。如果还有其他问题,您可能需要在它前面加上 file:///home/...
前缀,以便浏览器考虑获取它。但是,如果您的浏览器显示 http 文档,出于安全原因,它甚至可能不会跨越该域并嵌入本地文件资源:为什么任何网络服务器都会在您的本地磁盘上引用 material?
将您的图片放在可以通过 http 引用它们的地方,问题就应该解决了。