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 }
引用效果,如下所示:
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- SAP Spartacus注入自定义的CurrentProductService
- Redis系列(十一)redis命令全集
- Jinkens+gitlab针对k8s集群实现CI/CD
- Vue 踩过的坑
- Java TCP/UDP/HttpClient简例
- 让你设计实现一个签到功能,到底用MySQL还是Redis?
- 如何防止MySQL重复插入数据,这篇文章会告诉你
- Spring AOP注解开发
- 快速学习-Jenkins CLI凭据
- 快速学习-Jenkins CLI任务
- 珍惜数据,远离钓鱼
- Android Pie限制非 SDK 接口的调用
- 多线程基础(十一):interrupt深度分析
- [记录点滴]授人以渔,从Tensorflow找不到dll扩展到如何排查问题
- redis学习(十七)