静态资源映射
默认情况下,当我们想要在前台页面使用服务器端的静态文件(如css,js,js库,图片等)时,我们只要将这些文件放在以下目录中的任意一个:
- /META-INF/resources/
- /resources/
- /static/
- /public/
如果这四个目录中有相同的静态资源文件,静态资源的默认访问优先级为:/META-INF/resources/>/resources/>/static/>/public/
修改静态资源映射的方法
- 修改这两个属性来改变静态资源的映射,比如我们的所有静态资源都在myres目录中,并且我们希望访问静态资源的的url都带有/myres/这个目录前缀:
- 继承WebMvcConfigurerAdapter类,并且重写addResourceHandlers方法就行,该操作与上面的方法得到的效果是一样的
@Configuration
public class MyWebAppConfigurer extends WebMvcConfigurationSupport {
/**
* 注册静态资源访问路径url以及静态资源存放位置,优先级按添加顺序
*
* @param registry
*/
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("/myres/**").addResourceLocations("classpath:/myres/").addResourceLocations("classpath:/static/").addResourceLocations("file:H:/myimgs/");
super.addResourceHandlers(registry);
}
}
Webjar
因为所有/webjars/**都去classpath:/META-INF/resources/webjars/找资源,而默认情况下classpath:/META-INF/resources/webjars/是优先级最高的,所以在使用时要注意的是spring.mvc.static-path-pattern= xxx的设置,比如设置为:
spring.mvc.static-path-pattern=/static/**
则在使用webjar时要在前面加上/static/前缀:
<script src="/static/webjars/jquery/3.2.1/jquery.min.js"></script>