我目前正在处理的lib包中有一些文件。它需要由多个项目使用,因此我无法将文件直接放在我的Web服务器中。
我希望我的Struts2.5 Web服务器能够从我的Lib包中提供一些静态文件。我正在考虑使用web-fragment.xml
解决方案,但是从what I gather from oracle开始,如果我编译我的库包并将其放在我的META-INF
目录中,这只会起作用。这很好,但是对于任何类型的开发或测试都非常不方便,因为每次我对html / js进行更改时,我都需要创建一个新的构建并将其复制到那里。这听起来像是错误的解决方案。
如果有一种方法可以使用xml配置执行此操作,则从我读过的内容中尚未明确说明。如果我能指出正确的方向,那将会有所帮助。
否则,如果有办法在Eclipse中以某种方式做到这一点也是可以接受的。为了记录,这个项目被eclipse中的另一个项目引用为我的Java Build Path中的必需项目。
答案 0 :(得分:1)
将静态文件放在Web Content Root(/
)下。如果您希望Struts提供静态内容,请将其置于/static
下。 Struts也可以提供类路径中的静态内容,但似乎不适合你。
阅读Load image in jsp from different URL but same domain的答案:
您可以在Static Content的文档中阅读有关静态内容加载程序和配置设置的更多信息。
如果在另一个.war
文件中打包和部署静态文件,并且指定了从应用程序访问这些文件的上下文路径,则可以重用其他Web应用程序中的相同静态文件。它可以从同一域或不同域提供。
您可以在Web存档展开时部署带有静态文件的Web应用程序,因此您不必在每次部署应用程序时对其进行打包,如果它是不同的应用程序,则不要需要重新部署其他应用程序,除非它们受到文件访问路径的影响。
另一种方法是与Eclipse中的其他项目共享项目静态内容,因为Eclipse在构建期间将项目文件复制到最终.war
,并且每个Web应用程序都有自己的共享副本文件。如果要修改某些共享文件,则需要仅重建/重新部署您正在处理的项目。可以根据需要重建/重新部署将此项目作为依赖项的其他项目。这似乎是最可靠的解决方案,因为修改某些Web应用程序并不会影响其他正在运行的Web应用程序。