SpringBoot中jsp里面的静态资源js、css、images访问不到解决办法

参考:https://www.cnblogs.com/zfding/p/11766062.html
 
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 }

引用效果,如下所示:

 

 

posted on 2020-09-30 18:00  别先生  阅读(3188)  评论(1编辑  收藏  举报