Java 如何使用Struts2为静态资源(图像、css等)提供服务?

Java 如何使用Struts2为静态资源(图像、css等)提供服务?,java,struts2,tomcat7,Java,Struts2,Tomcat7,我是Struts2新手,我只是在寻找一种服务于静态资源(例如图像、javascript文件、css文件等)的方法。例如,以/assets开头的每个请求都应尝试加载所引用的静态资源 1) 我需要在哪里存储我的图像/js文件等以使其正常工作 2) 我需要如何配置Struts,以便它加载这些文件 该项目将在Tomcat 7上以.WAR的形式运行,静态资源将作为WAR的一部分包含在其中通常您的web服务器直接从文件系统提供这些资源。也就是说,Struts2不是自己做的 如果您提供您正在使用的,也许我们可

我是Struts2新手,我只是在寻找一种服务于静态资源(例如图像、javascript文件、css文件等)的方法。例如,以
/assets
开头的每个请求都应尝试加载所引用的静态资源

1) 我需要在哪里存储我的图像/js文件等以使其正常工作

2) 我需要如何配置Struts,以便它加载这些文件


该项目将在Tomcat 7上以.WAR的形式运行,静态资源将作为WAR的一部分包含在其中

通常您的web服务器直接从文件系统提供这些资源。也就是说,Struts2不是自己做的

如果您提供您正在使用的,也许我们可以帮助配置它

例如,如果您在Tomcat7前面使用HTTPD(Apache)web服务器,则会有一个文件夹,HTTPD从中提供文件。也许/var/www/html是某些系统的位置。然后将静态内容放在/var/www/html/assets中

编辑

如果静态资源要在war文件中,您只需构建war并将这些文件放在war文件的根目录中,或者放在从war根目录开始的其他未使用的文件夹结构中

例如,如果您想在上引用图像,则将其my.png放在war文件根目录下的文件夹/assets中

从站点中的任何HTML页面,您都可以通过以下方式引用该图像文件:

<img src="/assets/m.png" .../>

这将使用同一网站上的默认路径。

(稍后回答) 很抱歉,因为Java服务器是中间件,所以不应该将资源管理委托给Apache。你不应该把你的资源放在战争的根源上。这不是一个标准的体系结构。 通常,Java web项目应该如下所示(我使用Maven,因为它很棒,所以我也指出它):

src
--主要

--java您是如何部署的?战争文件?谢谢你的编辑。问题是,我不知道战争将在哪个URL上进行。它可能在mysite.com或mysite.com/appName等上。我如何引用这些资产,以便无论WAR在哪个URL上运行,都能加载它们?好吧,这个方法不起作用。我需要将资源打包到与代码其余部分相同的WAR中,我不能将资源单独放在/var/www/html或任何其他目录中。我刚刚测试了这个方法,但是当我尝试显示一个图像时,使用
我得到了
没有为动作名abc.jpg映射的动作。
错误页面我确实将资产目录与META-INF和WEB-INF目录一起放在了WAR的根目录中。我将assets目录放在
src/main/webapp
目录中,当我从Netbeans构建它时,
assets
目录放在war@ClickUpvote我不使用Struts,但在
/*
上映射MVC前端控制器是个坏主意。您不希望让它完全覆盖servletcontainer的默认servlet。而是用
*.html
*.do
等替换它。如果你在这方面真的很固执,请继续阅读并@BalusC谢谢,就是这样。将URL更改为
.do
解决了这个问题。@BalusC Struts 2中的前端是一个过滤器,FWIW。
src
    -- main
          -- java                <= you put your java sources here
          -- resources           <= you put your configuration or i18n properties files here
          -- webapp              <= here is the "web application" code. The front-end...
                   -- img        <= your images
                   -- js         <= your JS
                   -- css        <= your css
                   -- jsp        <= your JSP
   -- test
          -- etc...
pom.xml