AddResourceHandler()
SpringBoot项目中静态资源一般放在static包和tamplates包下可以直接访问
而有放在其他包下的需求时就需要配置拦截器放行:
@Configuration
public class WebMvcConfig extends WebMvcConfigurationSupport {
/**
* 设置静态资源映射
* @param registry
*/
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("/backstage/**").addResourceLocations("classpath:/backstage/");
}
}
WebMvcConfig中提供用来添加静态资源映射的方法
.addResourceHandler()中匹配到预设的请求路径就映射到.addResourceLocations()中填写的文件真实位置。
然而奇怪的是配置后重新编译运行还是无法访问相应的静态资源,经过一番寻找之后发现解决办法是--清除idea缓存
具体操作为file-->invalidate Caches/Restart-->invalidate Caches/Restart
重启之后重新访问静态资源就成功了,虽然解决了问题,然而解决问题的底层逻辑还是没搞明白,
不是已经重新编译运行了吗?为何还要清除idea缓存才能达到正常访问的目的?
编程路还很长,还有许多谜团等着去发掘。