我在Spring Boot项目(使用2.1.15版)中添加了以下依赖项:
<dependency>
<groupId>org.thymeleaf</groupId>
<artifactId>thymeleaf</artifactId>
<version>3.0.11.RELEASE</version>
</dependency>
<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.2.1</version>
</dependency>
在Thymeleaf页面上,我包括以下CSS文件和脚本:
<link rel="stylesheet" th:href="@{/webjars/bootstrap/3.3.7-1/css/bootstrap.min.css}">
<script th:src="@{/webjars/bootstrap/3.3.7-1/js/bootstrap.min.js}" type="text/javascript"></script>
<script th:src="@{/webjars/jquery/3.2.1/jquery.min.js}" type="text/javascript"></script>
要加载模板,我定义了以下控制器映射:
@RequestMapping(name = "/")
public String loadMainWeb() {
return "index";
}
但是,当我运行应用程序时,Bootstrap样式没有加载。我通过将btn
和btn-primary
类添加到按钮进行了测试。为什么这些样式无法加载?
完整项目可在GitHub上找到。
答案 0 :(得分:1)
问题在于您的控制器映射。您当前正在使用以下映射:
@RequestMapping(name = "/")
public String loadMainWeb() {
return "index";
}
但是,您使用name
属性代替了path
注释上的@RequestMapping
属性。通过舍弃path
属性,您实际上告诉Spring您想将此控制器映射应用于所有端点。
这意味着在运行应用程序时,实际上是在尝试加载WebJars文件时正在加载index.html
页面。
要解决此问题,您应该使用path
代替name
:
@RequestMapping(path = "/") // Use 'path'
public String loadMainWeb() {
return "index";
}