从 Struts2.5 网络服务器访问外部项目静态网络资源

Access external project static web resources from Struts2.5 web server

我目前正在处理的 lib 包中有一些文件。它需要被多个项目使用,所以我不能将文件直接放在我的网络服务器中。

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

如果有一种方法可以使用 xml 配置来执行此操作,但从我读到的内容来看还没有弄清楚。如果我能指出正确的方向,那将会很有帮助。

否则,如果有一种方法可以在 Eclipse 中以某种方式执行此操作,那也是可以接受的。作为记录,这个项目被eclipse中的另一个项目引用为我的Java构建路径中的必需项目。

将静态文件放在 Web 内容根目录下 (/)。如果您希望 Struts 为您的静态内容提供服务,请将其放在 /static 下。 Struts 也可以提供类路径中的静态内容,但它似乎不适合您。

阅读我对 Load image in jsp from different URL but same domain 的回答:

You can read more about static content loader and configuration settings in the docs for Static Content.


如果您在另一个 .war 文件中打包和部署静态文件并指定上下文路径以从您的应用程序访问这些文件,则可以重用来自其他 Web 应用程序的相同静态文件。它可以从相同的域或不同的域提供服务。

您可以部署带有静态文件的 Web 应用程序,因为 Web 存档已展开,因此您无需每次部署应用程序时都打包它们,如果是不同的应用程序,则无需重新部署其他应用程序, 除非它们受到文件访问路径的影响。

另一种方法是将包含静态内容的项目与 Eclipse 中的其他项目共享,因为 Eclipse 在构建过程中将项目文件复制到最终 .war,每个 Web 应用程序都会有自己的副本共享文件。如果你想修改一些共享文件,那么你只需要 rebuild/redeploy 你正在处理的项目。将此项目作为依赖项的其他项目可能 rebuilt/redeployed 按需。这似乎是最可靠的解决方案,因为修改某些网络应用程序不会影响其他网络应用程序 运行.