创建仅包含图像的战争

时间:2012-02-22 16:34:08

标签: image url maven resources war

我正在尝试创建一个将在EAR中部署的战争,它应该只包含图像。

我的战争来源组织如下:

+---src
|   +---main
|   |   +---java
|   |   +---resources
|   |   |   \---META-INF
|   |   |       \---resources
|   |   |           \---images
|   |   |                   placeholder_image.jpg
|   |   |                   placeholder_template.png
|   |   |
|   |   \---webapp
|   |       \---WEB-INF
|   \---test
|       +---java
|       \---resources

我的战争有效组织是

+---META-INF
\---WEB-INF
    \---classes
        \---META-INF
            \---resources
                \---images
                        placeholder_image.jpg
                        placeholder_template.png

我要投放的图片位于src/main/resources/META-INF/resources/images文件夹中。

我使用maven-war-plugin打包这场战争。

如果我的战争在http://localhost:8080/myapp/路径下显示为可用,那么在我的本地计算机上可以使用哪些网址?

2 个答案:

答案 0 :(得分:2)

无。来自WEB-INF的内容不是静态服务的,resources用于类路径资源。您需要将图像(文件夹)直接放在webapp下或添加一个提供内容的servlet。

答案 1 :(得分:2)

这取决于您是否在与Tomcat 7或Jetty 8等兼容Servlet-3的容器中部署war

如果是这样,您的资源应该在http://localhost:8080/myapp/images/...下显示。

另请参阅this post,其中唯一的区别是资源打包在jar中。对于jar,此功能比WEB-INF/classes更有意义,因为,正如第一个答案所指出的那样,如果资源位于同一位置,您应该直接将资源直接放入src/main/webapp Maven模块。