使用webjars的Thymeleaf Bootstrap的Spring MVC

前端之家收集整理的这篇文章主要介绍了使用webjars的Thymeleaf Bootstrap的Spring MVC前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个 Spring项目,我将以下webjars包含在pom.xml中:
<dependency>
    <groupId>org.webjars</groupId>
    <artifactId>bootstrap</artifactId>
    <version>3.3.7-1</version>
</dependency>
<dependency>
    <groupId>org.webjars</groupId>
    <artifactId>jquery</artifactId>
    <version>3.1.1</version>
</dependency>

然后我在HTML视图中包含以下链接和脚本:

<link rel="stylesheet" href="@{/webjars/bootstrap/3.3.7-1/css/bootstrap.min.css}" />

<script src="@{/webjars/jquery/3.1.1/jquery.min.js}"></script>
<script src="@{/webjars/bootstrap/3.3.7-1/js/bootstrap.min.js}"></script>

但它没有用,没有找到映射:

[org.springframework.web.servlet.PageNotFound] (default task-15) No mapping found for HTTP request with URI [/TestPublicWeb-0.0.1-SNAPSHOT/webjars/bootstrap/3.3.7-1/css/bootstrap.min.css] in DispatcherServlet with name 'testapp'

…所以我尝试将以下映射包含到servlet.xml中:

<mvc:resources mapping="/webjars/**" location="classpath:/Meta-INF/resources/webjars/"/>

但是有了这个,找不到我/ TestApplication的映射:

[org.springframework.web.servlet.PageNotFound] (default task-13) No mapping found for HTTP request with URI [/TestApplication/] in DispatcherServlet with name 'testapp'

webjars应该如何以正确的方式包含在Spring项目中?

解决方法

问题是您将标准HTML href标记与Thymeleaf的语法@ {}混合.更改如下:
<link rel="stylesheet" th:href="@{/webjars/bootstrap/3.3.7-1/css/bootstrap.min.css}" />

<script th:src="@{/webjars/jquery/3.1.1/jquery.min.js}"></script>
<script th:src="@{/webjars/bootstrap/3.3.7-1/js/bootstrap.min.js}"></script>

如果您使用的是Spring Security,还需要在configure(HttpSecurity http)方法中指定对webjars的授权,例如:

http.authorizeRequests().antMatchers("/webjars/**").permitAll();

猜你在找的Bootstrap相关文章