我们有一个由Sparkjava微型框架构建的Web服务。它具有使用HTML,CSS,javascript的UI。它由Sparkjava的嵌入式Jetty服务器提供服务,并且一切正常。
现在,我们想使用Tomcat服务Sparkjava应用。如其官方文档中所述,Sparkjava应用程序可以作为web.xml中指定的过滤器(SparkFilter)运行。
Tomcat可以为应用提供服务,但似乎无法用静态内容呈现页面。 html模板在src/main/resources/templates
下,并且可以正常工作。包含js,css等文件夹的static
文件夹为src/main/resources/static
,但似乎没有被拾取。对静态内容(例如/js/select2.min.js
)的访问从服务器返回404。在Sparkjava应用程序的条目中,我们具有staticFiles.location("/static");
所有这些设置都适用于嵌入式码头,但不适用于在Tomcat上作为过滤器运行的Sparkjava应用程序。
所以,我想知道Sparkjava Web应用程序如何在Tomcat上运行时正确地拾取静态文件?
我已经找到了解决方案:我们可以删除webapps文件夹中的ROOT文件夹,并将ROOT.war放在webapps文件夹中。 ROOT.war是您要提供的应用程序。它必须重命名为ROOT.war。