随笔 - 597  文章 - 4  评论 - 445  阅读 - 424万

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   别先生  阅读(3689)  评论(1编辑  收藏  举报
编辑推荐:
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· 展开说说关于C#中ORM框架的用法!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
历史上的今天:
2016-09-30 MYSQL子查询与连接
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示