html静态资源加载404,spring security访问静态资源文件出现404

根据《Java EE开发的颠覆者 Spring Boot 实战》来学习Spring Security,然后照着书上的代码去敲,发现了很多书上写和实际情况不一样的地方。

书上的User实体类还可以实现接口,而我如果实现接口UserDetails,一运行就会报错,解决办法是新创建一个MyUserDetails去继承User实体类,然后实现UserDetails接口。

书上说Spring Boot针对Spring Security有自动配置,其中包括忽略/css/、/js/、/images/等静态文件的拦截,然后书中的实战代码也并没有对这几个文件设置允许访问,依然可以引用bootstrap,可我在实际代码中发现并不可以!还是要给这几个文件路径进行匹配,然后允许所有用户访问,看下面的代码http.authorizeRequests()

//允许所有用户访问"/","/jquery/**","/semantic/**","/css/**","/js/**","/images/**"

.antMatchers("/",

"/jquery/**",

"/semantic/**",

"/css/**",

"/js/**",

"/images/**",

"/fonts/**",

"/**/favicon.ico",

"/**").permitAll()

//其他请求需要登录认证

.anyRequest().authenticated()

如果不加上这段代码访问静态文件都成302,访问静态文件全都跳转到login去了。

但新的问题是加上这段代码后访问静态文件又变成404了,检查了几十遍路径没有错,然后在static文件夹下随便新建了一个txt文件去访问,也是404,最后解决办法看下面代码

@Configuration

public class WebMvcConfig extends WebMvcConfigurationSupport {

@Override

public void addViewControllers(ViewControllerRegistry registry) {

registry.addViewController("/login").setViewName("login");

}

@Override

public void addResourceHandlers(ResourceHandlerRegistry registry) {

registry.addResourceHandler("/static/**").addResourceLocations("classpath:/static/");

}

}

重点是这里

@Override

public void addResourceHandlers(ResourceHandlerRegistry registry) {

registry.addResourceHandler("/static/**").addResourceLocations("classpath:/static/");

}

需要在后面重新映射一下静态资源路径,自己觉得原因可能是Spring Boot默认的静态资源路径不知道被我怎么搞的失效了,怀疑和Spring Security有关,

而且在html文件中的引用方式也要改变,看代码

我是引用的semantic-ui,引用路径前面都要加上/static,Spring Boot默认下是不需要的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值