springBoot2.2.6项⽬中html页⾯样式效果丢失
你我肯定都知道出现这个现象的原因是因为静态资源的请求被拦截了。springBoot 1.x和2.x关于静态资源过滤的配置有些差异,下⾯是基于2.2.6进⾏配置。bootstrap项目
1. 关于html中静态资源的引⼊
<link href="css/bootstrap.min.css"rel="stylesheet">
<link href="../static/css/bootstrap.min.css"rel="stylesheet">
两种⽅式都能引⼊,推荐使⽤后者,带有/static路径的,这样⼀来,在配置静态资源过滤时,配置⼀个⼤的路径就OK了。
2. 配置
在添加时,需要配置过滤的静态资源。注意这⾥是在@Configuration类中添加,⽽不是继承HandlerInterceptor实现⾃定义的。
@Override
public void addInterceptors(InterceptorRegistry registry){
registry.addInterceptor(new MyLoginHandlerInterceptor()).addPathPatterns("/**")
.excludePathPatterns("/","/index.html","/user/login","/static/**","classpath:static/","/webjars/**");
}
3. 配置资源处理器
在springBoot 1.x中,应该执⾏到第⼆步就OK了,⽽到了2.x,某些返回页⾯会出现样式的丢失,这时需要添加⼀
个addResourceHandlers静态资源处理器,将对应路径或⽂件标识为静态资源。两者都加上后,才算完全解决。
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry){
registry.addResourceHandler("/static/**").addResourceLocations("classpath:static/")
.addResourceLocations("/webjars/**");
}
附:MyWebMvcConfigurer⾃定义配置
package com.fig;
import t.annotation.Configuration;
import org.springframework.fig.annotation.InterceptorRegistry;
import org.springframework.fig.annotation.ResourceHandlerRegistry;
import org.springframework.fig.annotation.ViewControllerRegistry;
import org.springframework.fig.annotation.WebMvcConfigurer;
@Configuration
public class MyWebMvcConfigurer implements WebMvcConfigurer {
@Override
public void addViewControllers(ViewControllerRegistry registry){
registry.addViewController("/").setViewName("login");
registry.addViewController("/index.html").setViewName("login");
}
@Override
public void addInterceptors(InterceptorRegistry registry){
registry.addInterceptor(new MyLoginHandlerInterceptor()).addPathPatterns("/**")
.excludePathPatterns("/","/index.html","/user/login","/static/**","classpath:static/","/webjars/**"); }
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry){
registry.addResourceHandler("/static/**").addResourceLocations("classpath:static/") .addResourceLocations("/webjars/**");
}
}
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论