Java 使用Webjars和Spark导入静态jqueryjs文件
我正在使用Spark作为框架来构建一个JavaWeb服务器,并依靠Bootstrap和jQuery作为前端。我正在使用在我的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
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>