工程:demo-web1,目标引入jquery-1.11.2.min.js
配置参考:https://blog.csdn.net/plei_yue/article/details/79360645
自定义资源位置和映射:
参考:https://www.cnblogs.com/xbq8080/p/7774856.html
自动配置静态资源
-
自动配置的位置
image.png
静态资源放到如下位置被支持:classpath:/static,classpath:/public,classpath:/resources,classpath:/META-INF/resources或我们把静态文件直接放到webapp下都被支持
定制静态资源位置
当我们在application.properties/yml中配置默认访问路径时,只能够访问到我们配置的访问路径。
在webapp下的目录中的静态文件就不能够进行访问
第一种方式:自动配置静态资源
在自动配置类的addResourceHandlers方法中定义了静态资源的自动配置。
Spring Boot的静态资源配置有两项
spring.mvc.static-path-pattern 配置访问路径 默认/**
spring.resources.static-locations 静态资源文件位置
默认的官方配置如下:
spring.mvc.static-path-pattern=/**
spring.resources.static-locations= classpath:/static,classpath:/public,classpath:/resources,classpath:/META-INF/resources
我们当然可以把js,css放到上述默认路径下,比如我们把jquery的文件放到src/main/resource/static/js/下。
修改上节课的hello.jsp, 增加如下代码
<script type="text/javascript" src="<%=request.getContextPath()%>/js/jquery-1.11.2.min.js"></script>
<script>
$(function(){
alert("jquery调用 ");
})
</script>
输入网址测试一下:http://localhost/haha/hello2
一般情况下,默认的静态资源访问路径就能满足我们的需求,当然我们也可以自定义静态资源的路径:
如果想更改默认配置,参考以下:(学生完成编写和测试)
第二种 自定义静态资源位置(修改application.properties默认配置)
spring.mvc.static-path-pattern=/js/**
spring.resources.static-locations=classpath:/js/
第三种 自定义资源映射实现方式(推荐)
自定义一个配置类,实现WebMvcConfigurer接口
重写addResourceHandlers方法
通过addResourceHandler添加映射路径(对外访问路径)
通过addResourceLocations来指定文件存放路径
重写addResourceHandlers方法,并不会覆盖配置文件中的配置
package com.neuedu.demo.config;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
@Configuration
public class MyMvcConfig implements WebMvcConfigurer{
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
//如下配置,js文件放到webapp/js下
//测试方法http://localhost:8080/js/test1.js
//registry.addResourceHandler("/js/**").addResourceLocations("classpath:/js/");
}
}