【问题标题】:Access external project static web resources from Struts2.5 web server从 Struts2.5 web server 访问外部项目静态 web 资源
【发布时间】:2017-12-11 02:54:37
【问题描述】:

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

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

如果有办法通过 xml 配置来做到这一点,我读过的内容并没有说清楚。如果我能指出正确的方向,那将很有帮助。

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

【问题讨论】:

    标签: java eclipse struts2 web.xml


    【解决方案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 应用程序的运行。

    【讨论】:

    • 非常感谢,第二种方法听起来像我想走的路线。根据这些建议,我会看看我是否可以做任何事情。
    猜你喜欢
    • 1970-01-01
    • 2011-07-25
    • 2012-05-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-25
    相关资源
    最近更新 更多