2017-07-06 82 views
1

我在当前正在处理的lib包中有一些文件。它需要被多个项目使用,所以我不能将这些文件直接放在我的Web服务器中。从Struts2.5 Web服务器访问外部项目的静态网页资源

我希望我的Struts2.5 Web服务器能够从我的Lib包中提供一些静态文件。我正在研究使用web-fragment.xml解决方案,但是从what I gather from oracle,这只有在我编译我的库包并将其放入我的META-INF目录中时才会起作用。这很好,但对于任何开发或测试都非常不方便,因为每次我对html/js进行更改时,都需要进行新构建并将其复制到那里。这听起来像是我错误的解决方案。

如果有一种方法可以使用xml配置来完成这项工作,那么从我读过的内容中就不能说清楚了。如果我能指出正确的方向,那会很有帮助。

否则,如果有办法在Eclipse中以某种方式做到这一点也是可以接受的。为了记录,这个项目被eclipse中的其他项目引用为我的Java Build Path中的必需项目。

回答

1

将静态文件放在Web内容根目录下(/)。如果你想让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应用程序

+0

非常感谢,第二种方法听起来像我想采取的路线。根据这些建议,我会看看我能否得到任何工作。 –