如何使用Struts 2提供静态资源(图像,CSS等)?

时间:2013-05-08 18:44:26

标签: java struts2 tomcat7

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

1)我需要在哪里存储我的images / js文件等才能使用?

2)我如何配置Struts以便加载这些文件?

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

2 个答案:

答案 0 :(得分:1)

通常,您的Web服务器直接从文件系统提供服务。也就是说,Struts2本身并没有这样做。

如果您提供正在使用的那个,我们可以帮忙配置它。

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

修改

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

例如,如果您想在http://mysite.com/assets/my.png引用图像,那么您将my.png放在war文件根目录中的文件夹/ assets中。

从网站的任何HTML页面,您都会以这种方式引用该图像文件:

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

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

答案 1 :(得分:0)

(后来回答) 抱歉,但由于Java服务器是中间件,因此不应将资源管理委派给Apache。而且您不应该将资源放在WAR的根目录中。这不是标准架构。 通常,Java Web项目应该看起来像(我使用Maven - 因为它很棒 - 所以我也指出它):

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

现在您只需要配置Struts2和web.xml(按照教程,非常简单)。