Printemps de Démarrage app pas de servir du contenu statique

Je suis à l'aide de Spring Boot, et suis en train de faire mes ressources statiques (CSS, JS, des Polices) disponible lorsqu'il est déployé. Le code source est disponible pour vous de regarder ou de clone de https://github.com/joecracko/StaticResourceError.

Maintenant mon CSS, JS, et les fichiers de Police ne sont pas visibles sur mon site web déployé.

Voici ma structure de répertoire du projet:

Printemps de Démarrage app pas de servir du contenu statique

Ici est le répertoire racine de la compilation des JAR: je vous assure que les fichiers sont présents dans leurs dossiers respectifs.

Printemps de Démarrage app pas de servir du contenu statique

Ici est le réseau d'erreur que je vois:

Printemps de Démarrage app pas de servir du contenu statique

Et voici mes sources fournies par chrome outils. Notez que la barre.css s'affiche vide ici. Vous pouvez regarder mon code source pour voir qu'il n'est pas vide.

Printemps de Démarrage app pas de servir du contenu statique

Voici mon homepage.html

<html xmlns:th="http://www.thymeleaf.org">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
<title>Insert title here</title>

<!-- Main Styles -->
<link rel="stylesheet" href="/css/bar.css" />
<script src="/js/foo.js"></script>

</head>
<body>
    <div>Welcome to Foo!</div>
</body>
</html>

Voici mon Web App Initialiseur (FooWebAppInitializer.java)

public class FooWebAppInitializer implements WebApplicationInitializer {

    @Override
    public void onStartup(ServletContext container) {

        AnnotationConfigWebApplicationContext rootContext = new AnnotationConfigWebApplicationContext();
        rootContext.register(ServletConfig.class);

        //Manage the lifecycle of the root application context
        container.addListener(new ContextLoaderListener(rootContext));

        //Spring Security
        container.addFilter("springSecurityFilterChain", new DelegatingFilterProxy("springSecurityFilterChain"))
            .addMappingForUrlPatterns(null, false, "/*");

        //Register and map the dispatcher servlet
        ServletRegistration.Dynamic dispatcher = container.addServlet("dispatcherServlet", new DispatcherServlet(rootContext));
        dispatcher.setLoadOnStartup(1);
        dispatcher.addMapping("/*");
        dispatcher.addMapping("*.css");
        dispatcher.addMapping("*.eot");
        dispatcher.addMapping("*.svg");
        dispatcher.addMapping("*.ttf");
        dispatcher.addMapping("*.woff");
        dispatcher.addMapping("*.map");
        dispatcher.addMapping("*.js");
        dispatcher.addMapping("*.ico");
    }
}

Voici ma Servlet de Configuration (ServletConfig.java)

@Configuration
@EnableWebMvc
@ComponentScan({"com.foo"})
public class ServletConfig extends WebMvcAutoConfiguration{

    @Bean
    MultipartResolver multipartResolver() {
        return new StandardServletMultipartResolver();
    }

    @Bean
    public ResourceBundleMessageSource messageSource() {
        ResourceBundleMessageSource source = new ResourceBundleMessageSource();
        source.setBasename("messages");
        return source;
    }
}

Et pour les coups de pied, Ma source de Sécurité Config (WebSecurityConfig.java)

@Configuration
@EnableWebMvcSecurity
public class WebSecurityConfig extends WebSecurityConfigurerAdapter {

    @Override
    protected void configure(HttpSecurity http) throws Exception {
        http
            .authorizeRequests()
                .anyRequest().permitAll();
    }

    @Override
    public void configure(WebSecurity web) throws Exception {
        web.ignoring().antMatchers("/resources/**"); //#3
    }
}

OriginalL'auteur John Douglas George | 2015-03-20