【问题标题】:Unable to access Images inside a War file无法访问 War 文件中的图像
【发布时间】:2014-04-01 18:56:07
【问题描述】:

我有一个已部署的 war 文件,其中包含 WEB-APP 目录中的 images 文件夹。我尝试使用访问存储在文件夹中的图像 “localhost:8080/testapp/images/image1.jpg”但我收到 404 响应。有人可以帮我吗? 提前致谢。

【问题讨论】:

  • 你能提供更多细节或一些代码吗?如果你使用的是Windows,你可以在部署目录上执行tree /a /f
  • @PaulVargas 假设它已经爆炸了。
  • 请提供有关图像在战争文件层次结构中的确切位置的详细信息。
  • @DaveNewton 你是对的!任何事情都有可能发生。
  • 我需要允许另一台机器上的应用程序访问这些图像。因此,我将它们存储在 war 文件中并将其部署到服务器。我在 Mac OS 上。

标签: java image spring spring-mvc war


【解决方案1】:

您的 images 目录必须是 WEB-INF 的同级,而不是它的子级。试试这个:

your-war-file.war
  |-images/
  |   |-image1.jpg
  |   |-image2.jpg
  |   `-image3.jpg
  |-WEB-INF/
  |   |-classes/
  |   |-lib/
  |   `-web.xml
  |-index.html
  `-404.html

【讨论】:

  • 非常感谢您的帮助。它现在对我有用。
【解决方案2】:

假设您在此 Web 应用程序的基本目录中有您的文件夹“images”(与“META-INF”和“WEB-INF”目录处于同一级别),路径似乎正确。也许检查您没有将“图像”文件夹放在“WEB-INF”中无法访问的地方?如果这不起作用,请尝试访问您的 Web 应用程序中的其他文件以检查它是否已部署在服务器上。

【讨论】:

  • 嗨.. 感谢您的帮助!我将图像文件夹更改为与 META-INF 和 WEB-INF 相同的基本目录,并重新部署了 war 文件,但我仍然遇到相同的错误。请您帮帮我吗?
  • 好吧,我想现在可能有任何理由。也许您可以检查: 1. 您的 Web 服务器启动(查看脚本输出和/或日志文件); 2. 确保已部署 Web 应用程序(默认情况下,在您的 Web 服务器中的“webapps”或类似名称的目录中,war 文件应该被分解,即解压缩到常规文件夹中) 3. 尝试从您的 Web 应用程序访问一些其他静态内容- 也许你有一些 javascript 或 css 文件 -> 如果没有提供任何服务,则必须使用路径/端口/服务器/webapp 4. 你还可以查看服务器启动日志以确保端口正确等...
  • 我通过将文件夹移动到基本目录来实现它。非常感谢您的帮助。
【解决方案3】:

客户端不能直接访问 WEB-INF 下的工件。

如果您不从应用端点流式传输它们,请将它们放在可直接访问的位置。

【讨论】:

    【解决方案4】:

    如何从路径中读取? 使用 File 的 ("."+File.seperator+"some else") path 作为代码或 html 文件的当前路径

    【讨论】:

    • 您能详细解释一下吗?或者提供一个例子?提前致谢。
    猜你喜欢
    • 2012-06-05
    • 1970-01-01
    • 2017-04-04
    • 2018-12-30
    • 2013-11-04
    • 2016-10-03
    • 2016-03-25
    • 2017-08-10
    • 2020-07-31
    相关资源
    最近更新 更多