首页 > 解决方案 > 如何为在 Tomcat 上运行的 Sparkjava 作为过滤器提供静态内容

问题描述

我们有一个由 Sparkjava 微框架构建的 Web 服务。它有一个使用 HTML、CSS、javascript 的 UI。它由 Sparkjava 的嵌入式 Jetty 服务器提供服务,一切正常。

现在我们想使用 Tomcat 为 Sparkjava 应用程序提供服务。如其官方文档所述,Sparkjava 应用程序可以作为 web.xml 中指定的过滤器(SparkFilter)运行。

Tomcat 可以为应用程序提供服务,但似乎无法使用静态内容呈现页面。html模板在下面src/main/resources/templates,它们工作正常。static包含js、css等文件夹的文件夹是,src/main/resources/static但是好像没有被捡起来。对静态内容的访问,例如/js/select2.min.js从服务器返回 404。在 Sparkjava 应用程序的条目中,staticFiles.location("/static");所有这些设置都适用于嵌入式码头,但不适用于在 Tomcat 上作为过滤器运行的 Sparkjava 应用程序。

所以我想知道如果在 Tomcat 上运行,Sparkjava Web 应用程序如何正确获取静态文件?

标签: tomcatservletsfilterstatic-filesspark-java

解决方案


我找到了一个解决方案:我们可以删除webapps文件夹中的ROOT文件夹,并在webapps文件夹中放一个ROOT.war。ROOT.war 是您想要服务的应用程序。它必须重命名为 ROOT.war。


推荐阅读