2016-05-22 8 views
0

Sorry, wenn das schon einmal gefragt wurde, aber alles, was ich versucht habe, hat nicht funktioniert. Das Problem, das ich habe, ist, dass meine statische Ressourcen nicht geladen werden, wenn die URL nicht root ist, dh wenn die URL localhost ist: 8080/Benutzer die CSS-Dateien laden, aber wenn ich versuche, laden Sie die CSS-Dateien für localhost: 8080/users/1 oder eine andere URL nach Benutzern die statischen Dateien nicht geladen. Meine statischen Dateien befinden sich in Ressourcen/statisch/public/css.Zugriff auf statische Ressourcen im Spring Boot, wenn die URL nicht root ist

Ich weiß, es ist wahrscheinlich etwas dummes. Danke im Voraus.

Meine webConfig Klasse:

@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 Klasse

@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); 
    } 
} 

aktualisiert *** Header-Datei

<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"/> 

Footer:

<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> 
+0

Das Problem liegt wahrscheinlich in der Art und Weise, wie Sie die Ressourcen in Ihre Vorlagen einbeziehen. Bitte posten Sie das. –

+0

Habe sie einfach dort hinzugefügt! Prost. Ich verwende das auch für Tomcat, nur für den Fall, dass es einen Unterschied macht. – LiamMalone

Antwort

0

Sie versorgen Ihre statischen Assets über relative Dateipfade (./). Sie werden unzugänglich, wenn Sie Dateien von tiefer in Ihrer Verzeichnisstruktur bereitstellen.

Verwenden Sie relative Pfadverzeichnisse: (/). ZB:

" /public/..." 

Unser embed eine komplette URL zu Ihrem Server.

+0

Danke Mann. Das ist genau richtig. – LiamMalone

Verwandte Themen