Spring Boot静态资源配置说明
在 Spring Boot 中,默认情况下,一共有5个位置可以放静态资源,五个路径分别如下:
- classpath:/META-INF/resources/
- classpath:/resources/
- classpath:/static/
- classpath:/public/
- /
在使用IDEA创建SpringBoot项目时,默认会创建src/main/resource/static目录,即classpath:/static 目录,为了方便,可以将JSP页面所需的静态资源放到该目录下。第5个选项/的意思是对于webapp目录下的静态资源也不会被拦截,但在Spring Boot项目的默认结构中没有该目录,需要手动创建,例如使用JSP的时候就需要手动创建该目录。需要注意的是,如果同一个文件分别出现在这五个目录下,那么加载的优先级也是按照该顺序进行的。
一般情况下,使用/resource/static/目录存放页面的静态资源即可,然后可以在application.properties配置文件中对静态资源的进行配置,例如下面的配置:
-
# Static Resource-Filter Configuration Information
-
spring.mvc.
static-path-pattern=/
static/**
-
spring.resources.
static-locations=classpath:/
static/
其中第一行表示定义请求URL的规则。也就是如果resource/static目录下存在一个test.jpg的图片文件,能够访问它的URL为:localhost:8080/static/test.jpg
若该配置项被设置为:
spring.mvc.static-path-pattern=/**
则该图片资源的访问路径为:localhost:8080/test.jpg
第二行表示从哪里去查找静态资源,即静态资源所在的目录为resource/static目录下。
在Spring Boot中也可以使用代码的方式对Spring MVC中的配置进行设置,例如如上的静态配置设置如下:
-
@Configuration
-
public
class WebMVCConfig implements WebMvcConfigurer {
-
@Override
-
public void addResourceHandlers(ResourceHandlerRegistry registry) {
-
registry.addResourceHandler(
"/static/**").addResourceLocations(
"classpath:/static/");
-
}
-
}
JSP页面中静态资源的使用
根据以上的说明,JSP页面中的静态资源使用就比较明了了。例如我的项目中在resource/static静态资源目录下有easyui的静态资源如下:
同时在application.properties配置文件中对静态资源的配置如上不变。那么在webapp/WEB-INF/jsp目录下页面中,对静态easyui静态资源的引入即可如下:
-
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
-
<html>
-
<head>
-
<title>User List
</title>
-
<link rel="stylesheet" type="text/css" href="/static/jquery-easyui-1.7.0/themes/default/easyui.css">
-
<link rel="stylesheet" type="text/css" href="/static/jquery-easyui-1.7.0/themes/icon.css">
-
<script type="text/javascript" src="/static/jquery-easyui-1.7.0/jquery.min.js">
</script>
-
<script type="text/javascript" src="/static/jquery-easyui-1.7.0/jquery.easyui.min.js">
</script>
-
<script>
-
-
</script>
-
</head>