-
Spring Security把我的静态资源都拦截了
参考了一些世纪美文:
这篇文章我看得很早但没有照做,我恨
Spring Security 静态资源访问
spring security访问静态资源文件出现404
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,最后解决办法看下面代码
作者:鑫鑫哥哥丨
链接:https://www.jianshu.com/p/c698667ee9a0
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
@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/");
}
}
需要在后面重新映射一下静态资源路径,自己觉得原因可能是Spring Boot默认的静态资源路径不知道被我怎么搞的失效了,怀疑和Spring Security有关,
而且在html文件中的引用方式也要改变,看代码
作者:鑫鑫哥哥丨
链接:https://www.jianshu.com/p/c698667ee9a0
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
<link rel="stylesheet" type="text/css" th:href="@{/static/semantic/dist/semantic.min.css}">
<script type="text/javascript" th:src="@{/static/js/jquery.min.js}"></script>
<script type="text/javascript" th:src="@{/static/semantic/dist/semantic.min.js}"></script>
一旦改了CSS和js的引入,就需要重启IDEA才能生效。下面这篇文章也详细地讲解了上面那些设置的原理。
(简单详细解决)SpringBoot 前台页面get不到js,css文件 net::ERR_ABORTED 404
在springboot自身带有的那个(项目名+Application)类中继承WebMvcConfigurationSupport重写里面的addResourceHandlers方法
在这里可以理解为配置在项目启动时扫描static下面的所有文件,也就是告诉springboot在启动的时候带上他们全部一起跑。
最强解决方案,js,css文件导入项目后先重新启动软件,
保证编码格式正确js引入加入type=“text/javascript”
css引入加入rel=“stylesheet”
重启idea软件
每次导入新的css和js都要重新启动。
————————————————
版权声明:本文为CSDN博主「一个有梦想的咸鱼。」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/YiQieFuCong/article/details/85009401
接下来这些并没有帮助,但还是存一下
在static下新建一个文件夹,然后在上述方法中指定跳过拦截的文件路径
这个的写法很有意思,根据文件类型进行过滤(虽然没效果)
Springsecurity引入静态资源 css,js,图片被屏蔽等问题解决办法
public void configure(WebSecurity web) throws Exception {
// 忽略URL
web.ignoring().antMatchers("/**/*.js", "/lang/*.json", "/**/*.css", "/**/*.js", "/**/*.map", "/**/*.html",
"/**/*.png");
}
-
我的程序总是说我少这个静态资源
然而加了也没什么效果……姑且放一下下载链接
blueimp-md5下载
-
/static/treetable-lay/treetable.css找不到
可我明明引入了啊……尚未解决
-
版本问题(没有用到)
看b站教程的时候看到这条弹幕,但其实没有用到,而且为什么thymeleaf和springsecurity有关系啊。
“特意回来告诉大家,高版本的springboot需要使用thymeleaf-extras-springsecurity5”
<dependency>
<groupId>org.thymeleaf.extras</groupId>
<artifactId>thymeleaf-extras-springsecurity5</artifactId>
</dependency>
网友评论