我无法决定是我没有正确理解 Servlet 3.0 规范还是 Tomcat 中存在错误。
这是我的情况。我有一个包含 jar 项目的 Web 应用程序。 Web 应用程序使用 Jersey 2.9 定义了一组 REST 端点。 jar 项目还定义了 REST 端点(也使用 Jersey 2.9)并且在 META-INF/resource 目录中有静态内容。 jar 中 META-INF 目录的结构如下所示:
META-INF
|- resources
|- test.html
|- testfolder
|- test2.html
我在 Tomcat 8.5.16 上运行它。当我运行它时,我得到以下结果:
- WAR REST 端点:成功
- JAR REST 端点:成功
- /test.html:成功
- /testfolder/test2.html - 404 失败
WAR 项目没有静态内容,因此不会发生冲突。我检查了 WAR 中的 JAR 文件,它包含如上所示的结构。
关于为什么提供顶级 html 文件而不是文件夹中的文件的任何想法?
最佳答案
将您的资源放在名为/static 的 WAR 中的顶级文件夹中。然后 Tomcat 将为它们提供服务。还有其他文件夹名称执行相同的操作。
关于java - Servlet 3 网络片段 - 不提供 META-INF 文件夹中的静态内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45442645/