【问题标题】:Serve static files from Java webapp subdirectory从 Java webapp 子目录提供静态文件
【发布时间】:2017-08-31 07:41:14
【问题描述】:

我有一个按如下方式组织的 Java webapp (RESTEasy):

src/main
  |- java/
  |- webapp/
    |- WEB-INF/
      |- web.xml
    |- public/
      |- <compiled static files>

公共文件夹被我的构建链填充了静态文件(index.html、编译的 js、css 和资源)。在构建 WAR 存档时,我可以访问 /public/index.html 下的静态文件。

有没有办法直接从根目录 (/index.html) 提供我的静态文件?我知道我可以直接将它们放在我的webapp 文件夹中,但是由于我的构建链和项目结构,我想避免这种情况。

【问题讨论】:

  • 今年春天吗?
  • 不,RESTEasy。但设置应该类似于大多数 Java servlet。
  • 你能让你的构建链将它们移动到 WAR 文件的根目录吗?使用 ANT 很容易做到这一点。

标签: java servlets resteasy web.xml


【解决方案1】:

通常,容器允许您指定文档根目录。这意味着您可以在任何需要的地方拥有类似结构的 Web 应用程序。但是,你不能拥有你想要的东西。因为,它不是 Web 应用程序结构。

某些容器还允许您指定文档库。像 Tomcat for Ex 一样,你可以在 server.xml 中指定这个

<Context docBase="/path/to/files" path="/files" />

一种解决方法是添加一个过滤器,将“公共”添加到所有 url。

【讨论】: