springboot静态资源(static)无法访问问题404及解决过程
作者:aogula
文章浏览阅读7.8k次。本文介绍了SpringBoot项目中遇到的静态资源无法访问的问题及解决办法。主要从拦截器配置、静态资源映射配置和pom.xml文件配置三个方面进行详细说明。
springboot 静态资源(static)无法访问问题404
(如果使用了拦截器)
检查配置的拦截器是否对静态资源放行
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
// 如果不是映射到方法直接通过,防止静态资源被拦截
if (!(handler instanceof HandlerMethod)) {
return true;
}
...
}
检查继承WebMvcConfigurerAdapter类
或实现WebMvcConfigure 接口中是否配置了静态资源放行
(就是使用@EnableWebMvc注解的地方)
/**
* ·
* 静态资源映射
*/
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("/**").addResourceLocations("classpath:/META-INF/resources/")
.addResourceLocations("classpath:/resources/").addResourceLocations("classpath:/static/")
.addResourceLocations("classpath:/public/");
super.addResourceHandlers(registry);
}
检查pom.xml中build的配置
(如果仍无法访问)
<resources>
<resource>
<directory>src/main/webapp</directory>
</resource>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
</resource>
</resources>如果有权限框架
如shiro或者spring security 自行配置请求过滤策略
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
