Spring Boot无法加载400错误的css文件

时间:2016-09-04 15:40:03

标签: spring spring-boot

我遇到了类似于这个的问题,除了我得到400错误:

Failed to load resource: the server responded with a status of 404 (Not Found)

我正在将应用程序编译为可执行文件。我把css文件放在:

resources\static\css

并在我的home.html资源\ templates下我将其引用为:

<link rel="stylesheet" type="text/css" media="all" th:href="@{/css/my.css}" />

我也试过把它放在:

resources\public\css

同样在文件夹结构中的各个位置,具有各种href值,但对于任何位置/ href,我得到400错误。我错过了什么?

更新:

添加了WebMmvConfig.java:

@EnableWebMvc
public class WebMvcConfig extends WebMvcConfigurerAdapter {

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

并将链接更改为:

<link rel="stylesheet" type="text/css" media="all" th:href="@{/static/css/cc.css}" />

我仍然遇到同样的错误......

更新2

我在应用程序中完全禁用了Web安全性,并将css文件全部洒在上面以查看它将从何处读取。事实证明它确实从webapp \ css文件夹读取了css文件,而不是资源* ...所以这有效,禁用了Web安全:

<link rel="stylesheet" type="text/css" media="all" th:href="@{css/cc.css}" href="css/cc.css"/>

但是当我启用安全性时,它会因400错误而失败。这是我的配置文件(简而言之):

@EnableWebSecurity
@Configuration
public class WebSecurityConfig extends WebSecurityConfigurerAdapter {

    @Autowired
    private UserDetailsService userDetailsService;

    protected void configure(HttpSecurity http) throws Exception {
        http
            .csrf()
                .disable()
            .authorizeRequests()
                .antMatchers("/", "/login**", "/logout**", "/signup").permitAll()
                .anyRequest().authenticated()
        .and()
            .formLogin()
                .loginPage("/login")
                .defaultSuccessUrl("/my_account", true)
        .and()
            .logout()
                .logoutUrl("/logout")
                .logoutSuccessUrl("/");
   }

    @Autowired
    public void configureGlobal(AuthenticationManagerBuilder auth) throws Exception {
        auth
            .userDetailsService(userDetailsService);
    }        
}

所以,我想问题是,为什么要从webapp而不是资源加载?

0 个答案:

没有答案