我是Struts 2的新手,我只是在寻找一种提供静态资源的方法(例如图像,javascript文件,css文件等)。例如,以/assets
开头的每个请求都应该尝试加载所引用的静态资源。
1)我需要在哪里存储我的images / js文件等才能使用?
2)我如何配置Struts以便加载这些文件?
该项目将在Tomcat 7上作为.WAR运行,静态资源将作为WAR的一部分包含在内
答案 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(按照教程,非常简单)。