Bootstrap 3 种样式未通过 Spring 引导和 WebJars 加载
Bootstrap 3 styles not loading with Spring boot and WebJars
我将以下依赖项添加到我的 Spring 引导(使用版本 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 上找到。
问题出在您的控制器映射上。您目前正在使用以下映射:
@RequestMapping(name = "/")
public String loadMainWeb() {
return "index";
}
但是,您在 @RequestMapping
注释中使用了 name
属性 而不是 path
属性。通过离开 path
属性,您实际上告诉 Spring 您想要为所有端点应用此控制器映射。
这意味着当您 运行 应用程序时,您实际上在尝试加载 WebJars 文件时加载 index.html
页面。
要解决这个问题,您应该使用 path
而不是 name
:
@RequestMapping(path = "/") // Use 'path'
public String loadMainWeb() {
return "index";
}
我将以下依赖项添加到我的 Spring 引导(使用版本 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 上找到。
问题出在您的控制器映射上。您目前正在使用以下映射:
@RequestMapping(name = "/")
public String loadMainWeb() {
return "index";
}
但是,您在 @RequestMapping
注释中使用了 name
属性 而不是 path
属性。通过离开 path
属性,您实际上告诉 Spring 您想要为所有端点应用此控制器映射。
这意味着当您 运行 应用程序时,您实际上在尝试加载 WebJars 文件时加载 index.html
页面。
要解决这个问题,您应该使用 path
而不是 name
:
@RequestMapping(path = "/") // Use 'path'
public String loadMainWeb() {
return "index";
}