【发布时间】:2019-09-29 18:36:15
【问题描述】:
我有一个 WAR(通过 Embedded Jetty 提供服务),我想在 WAR 之外包含静态文件。我的目标是:
- 从 WAR 外部的路径提供静态文件,相对于 Embedded Jetty 运行的目录。所以,如果我调用
/srv/app中的jar,我想配置一个http://myapp.com/static/js/my.js的URL 来服务/src/app/public/js/my.js。 - 安全:没有目录列表或
../路径转义 - 不要重新发明轮子:我不想编写新的 Servlet,而是要利用现有功能
- 理想情况下(非必需):隐藏 WAR 中的静态内容,这样如果我有
/src/app/public/index.html,将提供该文件,如果不存在,将提供 WAR 的index.html。李>
这是我检查的内容,以及我遇到的问题:
- DefaultServlet:看起来很理想,但是,我找不到任何方法让它在 WAR 之外提供文件。 DefaultServlet 有没有办法在 WAR 之外提供静态内容,路径相对于应用程序的密码?
- 配置 Jetty,如 https://www.eclipse.org/jetty/documentation/current/static-content-deployment.html 中所述;这似乎是理想的,但是,当复制进来时,似乎没有做任何事情(这是一个 NOOP)。
- ResourceHandler:这是正确的做法吗?我无法弄清楚如何使用它来实现我的目标
【问题讨论】:
标签: servlets jetty embedded-jetty