Spring Boot 3.2.5配置Security后无法访问静态资源求助
解决方案
1. 修正Spring Security的静态资源匹配规则
你的Security配置中,针对/js路径的匹配规则存在错误:当前的/js**仅能匹配以/js开头的直接文件(比如/jsfile.js),无法匹配/js/子目录下的文件(比如/js/CsrfToken.js)。需要将规则修改为/js/**,确保放行/js/下的所有资源:
.authorizeHttpRequests(authorize -> authorize .requestMatchers("/images/**", "/js/**", "/css/**", "/webjars/**").permitAll() // 其余规则保持不变 )
2. 修复HTML中的拼写错误
你的img标签属性存在笔误,scr应为src,该错误会导致图片无法加载:
<img src="/images/rentalwebs50.png" alt="testing static resources">
验证修改效果
完成上述修改后重启项目,浏览器将能正确获取/js/CsrfToken.js和/images/rentalwebs50.png资源,404错误会消失。
补充说明
Spring Boot默认会将src/main/resources/static/下的静态资源映射到应用根路径,因此你的资源请求路径本身是正确的,问题核心是Security规则未正确放行子目录下的静态资源。
内容的提问来源于stack exchange,提问作者Aleix Alcover
相关产品推荐
相关产品推荐

