2014-10-06 17 views
5

życzę mieć niestandardową stronę błędu 404 .I mieć prędkość w moim ścieżki klasy, ale nie chcę używać prędkości widok resolverowi Poniżej jest mój kodWiosna strona bagażnika zwyczaj błąd na 404

@EnableAutoConfiguration(exclude={VelocityAutoConfiguration.class}) 
@ComponentScan 
public class Application { 
Properties props = new Properties(); 

public static void main(String[] args) { 
    SpringApplication.run(Application.class, args); 
} 
} 

jestem nie jestem w stanie przekierować całego 404 do mojego html w katalogu zasobów.

Proszę pomóc

P.S działać, jeśli jestem użytkowania velocityresolver i mają error.vm w katalogu szablonów.

Dzięki ans pozdrowienia

Odpowiedz

11

Możesz podać EmbeddedServletContainerCustomizer i dodać tam swoje strony (na przykład statyczna) o błędach. Zobacz Error Handling w dokumentacji rozruchowej wiosennej. Np:

@Bean 
public EmbeddedServletContainerCustomizer containerCustomizer() { 
     return new EmbeddedServletContainerCustomizer() { 
      @Override 
      public void customize(ConfigurableEmbeddedServletContainer container) { 
       container.addErrorPages(new ErrorPage(HttpStatus.NOT_FOUND, "/404.html")); 
      } 
     }; 
} 
+0

Dzięki, zadziałało, chociaż spróbowałem tego samego i nie zadziałało wcześniej (spędziłem kilka godzin waląc głową w ścianę). Chyba potrzebujesz statycznego folderu, żeby mieć htmls, miałem swój 404.html w folderze zasobów. –

+1

Tak statyczne pliki muszą znajdować się w folderze statycznym. Możesz jednak skonfigurować inne miejsca, w których chcesz wyświetlać swoje pliki statyczne, a także możesz użyć widoku tutaj (zamiast pliku statycznego). – cfrick

+3

@ cfrick, jak byś użył widoku zamiast statycznego pliku? –

8

od wiosny Boot 1.4.x:

Jeśli chcesz wyświetlić stronę błędu zwyczaj HTML dla danego kodu statusu, można dodać plik do folderu /error. Strony błędów mogą być statycznym kodem HTML (tj. Dodane pod dowolnym statycznym folderem zasobów) lub zbudowane przy użyciu szablonów. Nazwą pliku powinien być dokładny kod stanu (np. 404) lub maska ​​serii (np. 5xx).

Na przykład, aby map 404 do statycznego pliku HTML, twoja struktura folderów będzie wyglądać następująco:

src/ 
+- main/ 
    +- java/ 
    | + <source code> 
    +- resources/ 
     +- public/ 
      +- error/ 
      | +- 404.html 
      +- <other public assets> 

Aby odwzorować wszystkie 5xx błędów przy użyciu szablonu freemarker, chcesz mieć strukturę jak poniżej:

src/ 
+- main/ 
    +- java/ 
    | + <source code> 
    +- resources/ 
     +- template/ 
      +- error/ 
      | +- 5xx.ftl 
      +- <other templates> 

kasie Spring Boot documentation na bardziej szczegółowe omówienie.

Powiązane problemy