参考:https://cloud.tencent.com/developer/article/1711289
1、如果Springboot的项目用到了jsp页面,里面有些静态资源需要引用。
2、springboot 默认的静态资源的值有四个,Default默认分别如下所示:
1)、classpath:/META-INF/resources/,
2)、classpath:/resources/,
3)、classpath:/static/,
4)、classpath:/public/
3、如果你没有特别配置静态资源的位置,那么默认的静态资源的位置就是resource 下面的static 文件夹,毕竟不用自己新建文件夹,那么你的页面引入的静态文件可以这么写:
<script type="text/javascript" src="/js/jquery-3.4.1.min.js"></script>
4、当然就需要在static下面创建js文件夹,将jqeruy.js放在这个js文件夹下面。
5、或者你习惯于在webapp下面写静态文件,那么需要注意两个点:
1)、第一点:需要在webapp下面创建一个static文件夹(和WEB-INF同级) 然后创建js文件夹,然后把静态文件放进去
2)、第二点:引入静态文件的写法:
<script type="text/javascript" src="/static/js/jquery-3.4.1.min.js"></script>
注意上面都是没有指定静态文件的地址的,指定静态文件的地址的属性是 : spring.resources.static-locations
可以在application.properties中指定静态资源的地址,如下所示:
1 spring.resources.static-locations=classpath:*/js/,classpath:*/css/
如果不指定的,默认值有四个:Default:
classpath:/META-INF/resources/,
classpath:/resources/,
classpath:/static/,
classpath:/public/
6、使用案例,如下所示:
需要注意的是如果spring.resources.static-locations、spring.mvc.static-path-pattern配置如下的值:
1 spring.mvc.view.prefix=/WEB-INF/jsp/
2 spring.mvc.view.suffix=.jsp
3 spring.resources.static-locations=classpath:/static/
4 spring.mvc.static-path-pattern=/static/**
备注:
spring.mvc.static-path-pattern: spring.mvc.static-path-pattern,这个配置就是在访问静态资源的路径前面追加static关键字。比如没有设置这个配置项之前,访问静态资源http://127.0.0.1/js/jquery.bootstrap.js,加了之后就要这样访问了 http://127.0.0.1/static/js/jquery.bootstrap.js。
spring.resources.static-locations: classpath:/static,classpath:/templates,这个是用以指定存放静态资源的路径,查找静态资源时会上面的路径下面开始搜索,没有找到会返回404。
或者实现了addResourceHandlers该方法里面的所示内容,那么静态资源引用的时候,前面要加上/static/的,不然无法进行引用。
1 package com.fline.datagovern.config;
2
3 import org.springframework.context.annotation.Configuration;
4 import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
5 import org.springframework.web.servlet.config.annotation.ViewControllerRegistry;
6 import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
7
8 /**
9 *
10 * @author biehl
11 *
12 */
13 @Configuration
14 public class SpringMvcWebConfigSupport implements WebMvcConfigurer {
15
16 /**
17 * 将static下面的js,css等等文件加载出来
18 *
19 * @param registry
20 */
21 // @Override
22 // public void addResourceHandlers(ResourceHandlerRegistry registry) {
23 // registry.addResourceHandler("/static/**").addResourceLocations("classpath:/static/");
24 // }
25
26 /**
27 * 默认访问的是登录界面
28 *
29 * springboot 默认的静态资源的值有四个:Default:
30 *
31 * classpath:/META-INF/resources/,
32 *
33 * classpath:/resources/,
34 *
35 * classpath:/static/,默认的静态资源的位置就是resource下面的static文件夹
36 *
37 * classpath:/public/
38 */
39 @Override
40 public void addViewControllers(ViewControllerRegistry registry) {
41 // 浏览器发送/请求来到login.jsp页面,不用写controller控制层的请求方法了
42 // http://127.0.0.1:8000/xxx/
43 registry.addViewController("/").setViewName("login");
44 }
45
46 }
引用效果,如下所示: