2014-10-06 18 views
5

tôi muốn có trang lỗi tùy chỉnh 404 .I có vận tốc trong classpath của tôi, nhưng tôi không muốn sử dụng tốc độ view resolver Dưới đây là mã của tôimùa xuân trang lỗi tùy chỉnh khởi động cho 404

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

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

tôi không thể chuyển hướng tất cả 404 đến một số html của tôi trong thư mục tài nguyên.

Vui lòng hỗ trợ

P.S Nó hoạt động nếu tôi sử dụng velocityresolver và có lỗi.vm trong thư mục mẫu.

Cảm ơn ans liên quan

Trả lời

11

Bạn có thể cung cấp một EmbeddedServletContainerCustomizer và thêm trang (ví dụ tĩnh) lỗi của bạn ở đó. Xem Error Handling trong tài liệu khởi động mùa xuân. Ví dụ:

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

Cảm ơn, nó đã hoạt động, mặc dù tôi đã thử cùng một thứ và nó không hoạt động trước đây (đã dành vài giờ đập đầu vào tường). Tôi đoán bạn cần một thư mục tĩnh để có html, tôi đã có 404.html của tôi trong thư mục tài nguyên. –

+1

Có các tệp tĩnh phải nằm trong thư mục tĩnh. Nhưng bạn có thể cấu hình những nơi khác mà bạn muốn các tệp tĩnh của bạn được phân phối và bạn cũng có thể sử dụng một khung nhìn ở đây (thay vì một tệp tĩnh). – cfrick

+3

@cfrick, bạn sẽ sử dụng chế độ xem thay vì tệp tĩnh như thế nào? –

8

Tính đến mùa xuân Boot 1.4.x:

Nếu bạn muốn hiển thị một trang lỗi HTML tuỳ chỉnh cho một mã trạng thái nhất định, bạn có thể thêm một tập tin vào một thư mục /error. Các trang lỗi có thể là HTML tĩnh (tức là được thêm vào trong bất kỳ thư mục tài nguyên tĩnh nào) hoặc được tạo bằng các mẫu. Tên của tệp phải là mã trạng thái chính xác (ví dụ: 404) hoặc mặt nạ chuỗi (ví dụ: 5xx).

Ví dụ, để lập bản đồ 404 vào một tập tin HTML tĩnh, cấu trúc thư mục của bạn sẽ trông như thế này:

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

Để ánh xạ tất cả 5xx lỗi sử dụng một mẫu Freemarker, bạn muốn có một cấu trúc như thế này:

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

Thanh toán các Spring Boot documentation để thảo luận chi tiết hơn.

Các vấn đề liên quan