SpringBoot/SpringMVC设置拦截器后格式出现问题,静态资源未引用

334 阅读1分钟

css、js等资源属于静态资源,如下图:

在这里插入图片描述

设置拦截器时我们很可能用excludePathPatterns将一些没有权限要求的隔开,但html里依旧是会引用css、js等静态资源的,而拦截器会拦截这部分资源。 所以我们要做的是将所有静态资源不设置隔离

public void addInterceptors(InterceptorRegistry registry) {
        registry.addInterceptor(new SignUpHandlerInterceptor())
                .addPathPatterns("/**")
                .excludePathPatterns("/signup","/","/user/signup","/login","/login.html","/assets/**");
    }

html引用了许多静态资源:

 <!-- Meta -->
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    
    <meta name="description" content="">
    <meta name="author" content="Xiaoying Riley at 3rd Wave Media">    
    <link rel="shortcut icon" href="/favicon.ico" th:href="@{/favicon.ico}">

    <!-- FontAwesome JS-->
    <script defer src="/assets/plugins/fontawesome/js/all.min.js"></script>
    
    <!-- App CSS -->  
    <link id="theme-style" rel="stylesheet" th:href="@{/assets/css/portal.css}">
@Override
    public void addInterceptors(InterceptorRegistry registry) {
        registry.addInterceptor(new SignUpHandlerInterceptor())
                .addPathPatterns("/**")
                .excludePathPatterns("/signup","/","/user/signup","/login","/login.html");
    }

当我用excludePathPatterns排除不需要拦截的html后,出现以下情况:

在这里插入图片描述

@Override
    public void addInterceptors(InterceptorRegistry registry) {
        registry.addInterceptor(new SignUpHandlerInterceptor())
                .addPathPatterns("/**")
                .excludePathPatterns("/signup","/","/user/signup","/login","/login.html","/assets/css/**","/assets/js/**","/assets/images/**","assets/plugins/**");
    }

当我将静态资源里的各个文件都引入后: 在这里插入图片描述 虽然我分别把各项静态资源都引入了,还是出现了行间距离的问题。

@Override
    public void addInterceptors(InterceptorRegistry registry) {
        registry.addInterceptor(new SignUpHandlerInterceptor())
                .addPathPatterns("/**")
                .excludePathPatterns("/signup","/","/user/signup","/login","/login.html","/assets/**");
    }

最后直接把assets下所有文件引用和格式恢复正常。