Spring Boot 静态资源

ana*_*ema 1 javascript java spring spring-mvc spring-boot

我正在尝试使用 Mvc 和 AngularJs 创建一个 Spring Boot。我修改了我的应用程序的视图解析器,所以我可以让我的应用程序在“WEB-INF/pages/”文件夹中查看我的静态 html 文件。现在在 html 文件中,我使用 webjars 依赖声明了我的 AngularJs 库的来源

<script src="webjars/angularjs/1.5.5/angular.min.js"></script>
Run Code Online (Sandbox Code Playgroud)

我知道为了完成这项工作,我必须在应用程序的 ResourceHandlerRegistry 上声明 webjars libray 的类路径,因此在我的配置文件中我只添加了这行代码

@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
    registry.addResourceHandler("/webjars/**").addResourceLocations("classpath:/META-INF/resources/webjars/");
}
Run Code Online (Sandbox Code Playgroud)

添加这一行后,我的代码以某种方式工作,但让我好奇的是关于我的 html 文件中的这一行

<script src="resources/js/angular/app.js"></script>
Run Code Online (Sandbox Code Playgroud)

我注意到在 Spring MVC 应用程序上,为了让 Spring 检测 webapp 资源文件夹下的 Javascript 文件,我们必须ResourceHandlerRegistry像这样声明该文件夹

public void addResourceHandlers(ResourceHandlerRegistry registry) {
    registry.addResourceHandler("/resources/**").addResourceLocations("/resources/");
}
Run Code Online (Sandbox Code Playgroud)

但是我还没有在 Spring Boot 上声明我的 webapp 的资源文件夹,ResourceHandlerRegistry但应用程序仍然可以看到我的 app.js 文件并且我的 AngularJs 代码仍然有效。这是我的应用程序的文件结构

src |--main |--java |--resources |--webapp |--resources |--js |--angular |--app.js |--WEB-INF |--index.html

Rud*_*udy 6

这就是 spring boot Web 的静态工作原理。默认情况下,您应该将 js,image,css 放在 resources/static 中。如果您使用的是 thymeleaf,请将模板放在资源中。示例如下。

在此处输入图片说明

这就是您的调用方式,请注意 ../.. 实际上转到 /resources :

<!DOCTYPE HTML>
<html xmlns:th="http://www.thymeleaf.org">
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <link rel="stylesheet" th:href="@{/css/bootstrap.min.css}"
    href="../../css/bootstrap.min.css" />
    <link rel="stylesheet" th:href="@{/css/signin.css}"
    href="../../css/signin.css" />
</head>
Run Code Online (Sandbox Code Playgroud)

OP 之后的 UPDATE 给出了文件结构:位于 webapp/resources 的资源是 spring mvc 的默认静态文件夹(不是 spring boot - 请参阅此博客)。

Spring Boot 的静态文件夹位于(参考Spring IO 博客):

  • /META_INF/资源
  • /静止的
  • /资源
  • /民众