当url不是root

时间:2016-05-22 19:35:06

标签: css spring-security spring-boot

很抱歉,如果之前已经询问过,但我尝试过的所有内容都无效。我的问题是当url不是root时我的静态资源没有被加载,即如果url是localhost:8080 / users css文件加载正常但是如果我尝试加载localhost的css文件:8080 / users / 1或用户静态文件加载后的任何其他网址。我的静态文件位于resources / static / public / css。

我知道这可能是愚蠢的事。提前谢谢。

我的webConfig课程:

  @Override
        protected void configure(HttpSecurity http) throws Exception {
            http.authorizeRequests().antMatchers("/webjars/**").permitAll();
            http
                .authorizeRequests()
                    .antMatchers("/",
                            "/home",
                            "/error",
                            "/signup",
                            "/forgot-password",
                            "/reset-password/*",
                            "/public/**").permitAll()
                    .anyRequest().authenticated();
            http
                .formLogin()
                    .loginPage("/login")
                    //.defaultSuccessUrl()
                    .permitAll().and()
                .rememberMe().key(rememberMeKey).rememberMeServices(rememberMeServices()).and()
                .logout()
                    .permitAll();
}

MvcConfig类

@Configuration
@ComponentScan
public class MvcConfig extends WebMvcConfigurerAdapter {

    @Override
    public void addViewControllers(ViewControllerRegistry registry) {
        registry.addViewController("/").setViewName("home");
        registry.addViewController("/login").setViewName("login");

    }

    private static final String[] CLASSPATH_RESOURCE_LOCATIONS = {
            "classpath:/META-INF/resources/", "classpath:/resources/",
            "classpath:/static/", "classpath:/public/" };

    @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {
        registry.addResourceHandler("/**").addResourceLocations(CLASSPATH_RESOURCE_LOCATIONS);
    }
}

更新*** 头文件

<link rel="shortcut icon" type="image/png" sizes="16x16" href="./public/images/favicon/logo.png"/>
    <link type="text/css" rel="stylesheet" href="./public/css/style.css"/>

页脚:

 <script src="./public/lib/bootstrap-3.1.1/js/bootstrap.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.0/jquery.min.js"></script>
<script src="./public/js/home.js"></script>
<script src="./public/js/webcam.js"></script>
<script src="./public/js/recordVideo.js"></script>

1 个答案:

答案 0 :(得分:0)

您正在从文件相对(./)路径提供静态资源。当您从目录结构中的较深层提供文件时,它们将无法访问。

使用站点相对路径:(/)。例如:

" /public/..."

我们在您的服务器中嵌入了一个完整的网址。