nicht finden können html-Seiten mit spring boot

Bin ich mit spring-boot und Winkel in front-end. Manchmal möchte ich die Umleitung direkt vom service. Wir verwenden nur .html -, .css-und script-Dateien (keine .jsp).

Dies ist return "static/pages/savepassword.html"; wie ich versuchte, einen redirect zu savepassword

Also 1. Frage wie kann ich die Umleitung korrekt in diesem Fall?

Nächstes Frühjahr nicht finden, meine html-Dateien. Ich habe diese Struktur

nicht finden können html-Seiten mit spring boot

Lese ich, dass der Frühling finden sollten alle statischen Dateien, die im "statischen" automatisch, aber es funktioniert nicht. Also habe ich versucht zu konfigurieren, meine ViewControllerRegistry und RessourceControllerRegistry

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

    @Override
    public void addViewControllers(ViewControllerRegistry registry) {
        super.addViewControllers(registry);
        registry.addViewController("/savePassword").setViewName("static/pages/savePassword.html");
        registry.addViewController("/login").setViewName("static/pages/login.html");
        registry.setOrder(Ordered.HIGHEST_PRECEDENCE);
    }

Wenn ich rufe "static/pages/login.html" nicht direkt, es funktioniert. Wenn ich anrufen möchte "/login", heißt es 404.
2. Frage: Was muss ich konfigurieren muss, und was nicht?

UPDATE-1: Spring Security

http
            .authorizeRequests().antMatchers("/login", "/logout", "/user/**").permitAll()
            .anyRequest().authenticated()
        .and()
            .exceptionHandling()
            .accessDeniedHandler(new CustomAccessDeniedHandler())
            .authenticationEntryPoint(new CustomAuthenticationEntryPoint())
        .and()
            .requiresChannel()
            .anyRequest().requiresSecure()
        .and()
            .csrf()
            .disable()
            //.csrfTokenRepository(csrfTokenRepository())
            .addFilterBefore(new MDCFilter(), ExceptionTranslationFilter.class)
            //.addFilterBefore(new CorsFilter(),//ChannelProcessingFilter.class)
            //.addFilterAfter(new CsrfHeaderFilter(), CsrfFilter.class)
            .formLogin()
            .successHandler(new CustomSuccessAuthenticationHandler())
            .failureHandler(new CustomFailureHandler())
            .loginPage("/login").permitAll();

UPDATE-2
Ich aktualisiert meine Struktur, aber immer noch Probleme mit der Umleitung von /login, um die benutzerdefinierte login -.
nicht finden können html-Seiten mit spring boot

UPDATE-3
Ich hatte einen Blick auf den 2. Kommentar von Bob Schilde: https://spring.io/blog/2013/12/19/serving-static-web-content-with-spring-boot
Ich habe die folgenden:

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

    @Override
    public void addViewControllers(ViewControllerRegistry registry) {
        super.addViewControllers(registry);
        registry.addViewController("/savepassword").setViewName("savepassword.html");
        registry.addViewController("/login").setViewName("login.html");
        registry.setOrder(Ordered.HIGHEST_PRECEDENCE);
    }

Ich .html denn sonst /login verursachen würde rekursive Probleme. Mit dieser config kann ich eingeben /login und /templates/login.html aufgerufen werden (gleiche für savepassword.html).

Nun, ich würde gerne wissen, wie meine css/js in html:

<link rel="stylesheet" type="text/css" href="..resources/stylesheets/bootstrap.min.css" />
    <script src="..resources/scripts/angular.min.js"></script>
    <script src="..resources/scripts/login.js"></script>

Funktioniert das nicht...aber ich kann meine Skripte direkt mit /scripts/login.js.

  • Können Sie versuchen, mit /login.html?
  • Nein, denn Standard-Spring Security-Seite kommt. Regelmäßig können unsere eigene login.html (static/pages/login.html) erscheinen sollte. Ich aktualisiert meine Antwort, damit Sie sehen können, die spring-security-config. Ich dachte, dass die ViewControllerRegistry behebt login-statisch/pages/login,html und würde diese login-Seite
  • Ich kann die statische Ordner in src/main/ressource anstatt in webapp?
  • Können Sie versuchen, indem eine Seite direkt unter webapp-Ordner und auf Sie verweisen mit /login.html?
  • Ich deaktiviert spring security, kann aber nicht zugreifen, wenn Sie setzen eine html-Datei direkt in "Ressourcen".
InformationsquelleAutor Andy | 2016-03-02
Schreibe einen Kommentar