Java 使用Webjars和Spark导入静态jqueryjs文件

Java 使用Webjars和Spark导入静态jqueryjs文件,java,webjars,Java,Webjars,我正在使用Spark作为框架来构建一个JavaWeb服务器,并依靠Bootstrap和jQuery作为前端。我正在使用在我的pom.xml中引入依赖项 问题在于导入静态文件。虽然导入Bootstrap的CSS和JS文件效果很好,但jqueryjs文件的导入效果并不好。我使用staticFileLocation(“/META-INF/resources”)导入静态文件和HTML标题包含: <link rel="stylesheet" href="webjars/bootstrap/3.3.6

我正在使用Spark作为框架来构建一个JavaWeb服务器,并依靠Bootstrap和jQuery作为前端。我正在使用在我的
pom.xml
中引入依赖项

问题在于导入静态文件。虽然导入Bootstrap的CSS和JS文件效果很好,但jqueryjs文件的导入效果并不好。我使用
staticFileLocation(“/META-INF/resources”)导入静态文件和HTML标题包含:

<link rel="stylesheet" href="webjars/bootstrap/3.3.6/css/bootstrap.min.css">
<script type="text/javascript" src="webjars/jquery/2.2.1/jquery.min.js"></script>
<script type="text/javascript" src="webjars/bootstrap/3.3.6/js/bootstrap.min.js"></script>
编辑2: 我还在控制器中调用了两次
staticFileLocation()

staticFileLocation("/static");
staticFileLocation("/META-INF/resources");

这两个调用似乎相互冲突。

bootstrap
中,
jquery
版本
2.2.1
依赖项可能通过对
jquery
的传递依赖项被覆盖。您可以在
引导
依赖项中设置排除:

<dependency>
  <groupId>org.webjars</groupId>
  <artifactId>bootstrap</artifactId>
  <version>3.3.6</version>
  <exclusions>
    <exclusion>
      <groupId>org.webjars</groupId>
      <artifactId>jquery</artifactId>
    </exclusion>
  </exclusions> 
</dependency>

org.webjars

深入研究Spark的源代码,我发现只能引用一个静态文件夹位置。因此,同一时间只能使用一个webjar,这将使Spark忽略任何其他位置的任何CSS或JS文件。

我发现,如果您从一个IDE运行Spark,该IDE用于运行项目,那么在
/META-INF/resources/webjars
中只能获得引导

但是,如果您先做一个测试,然后使用
java-jar-jar with dependencies.jar
运行它,您将获得整个资源集(在您的例子中包括bootstrap和jquery)

实际上,您可以使用以下代码轻松检查可用资源:

获取(“/list)”,(请求,res)->{
Resource=Resource.newClassPathResource(“/META-INF/resources”);
返回resource.getListHTML(“/”,true);
});

访问
/list
您将获得可用资源的完整列表。

不确定,但我认为apache spark是错误的标记-如果您指的是“spark”,那么请删除apache spark标记,它指的是另一个项目()嗯。。。Spark标记会自动转换为apache Spark。Thx表示突出显示。您在
pom.xml
中的jquery依赖项是什么样子的?您的解决方案都不起作用。问题仍然存在:jquery.min.js没有链接。您需要了解将哪个版本的jquery依赖项拉入类路径。你可以通过多种方式做到这一点,比如
<dependency>
  <groupId>org.webjars</groupId>
  <artifactId>bootstrap</artifactId>
  <version>3.3.6</version>
  <exclusions>
    <exclusion>
      <groupId>org.webjars</groupId>
      <artifactId>jquery</artifactId>
    </exclusion>
  </exclusions> 
</dependency>