2017-10-23 16 views
6

Trong ví dụ đưa ra ở đây:hình ảnh không thể truy cập bằng Vaadin Xuân Application

https://vaadin.com/docs/framework/application/application-resources.html

những hình ảnh thư mục được đặt bên trong thư mục WEB-INF của ứng dụng.

Trong ứng dụng Mùa xuân Vaadin của tôi, tôi không có thư mục WEB-INF, vì vậy tôi đặt thư mục hình ảnh bên trong thư mục "tài nguyên" thay thế. Đây là những gì cấu trúc thư mục bên trong "src/main/tài nguyên" và bên trong của "mục tiêu" trông giống như:

enter image description here

Vấn đề là ứng dụng của tôi không thể truy cập những hình ảnh đó. Tôi luôn nhận được ngoại lệ "Không tìm thấy tệp".

tôi đã cố gắng ra giới thiệu con đường khác nhau, trong số những người khác, như sau:

VaadinService.getCurrent().getBaseDirectory().getAbsolutePath() + "images/pic.png" 

VaadinService.getCurrent().getBaseDirectory().getAbsolutePath() + "/classes/images/pic.png" 

VaadinService.getCurrent().getBaseDirectory().getAbsolutePath() + "/target/classes/images/pic.png" 

VaadinService.getCurrent().getBaseDirectory().getAbsolutePath() + "/applicationName/target/classes/images/pic.png" 

... không có gì làm việc !!

Làm cách nào để tôi có thể truy cập hình ảnh này vào ứng dụng Vaadin Spring của mình?

+1

Mã của bạn cho thấy bạn đang cố tải hình ảnh dưới dạng * Tài nguyên tệp *. Tuy nhiên, nếu tệp nằm trong dự án và trên đường dẫn lớp, bạn có muốn sử dụng * Tài nguyên Trình tải lớp * thay vào đó không? Có lẽ bạn có thể cập nhật câu hỏi bằng mã bạn đang sử dụng để tạo thành phần Hình ảnh? –

Trả lời

5

Ví dụ bạn đã liên kết đến sử dụng FileResource. Nó sẽ không hoạt động với các tài nguyên đóng gói jar.

Tốt, bạn có thể đặt hình ảnh của bạn trong src/main/resources/VAADIN/themes/{theme}/ và sử dụng một ThemeResource:

// Image as a file resource 
FileResource resource = new ThemeResource("images/image.png"); 

Ngoài ra, đưa tài nguyên của bạn để src/main/nguồn/và sau đó truy cập nó từ classpath:

getClass().getResourceAsStream("/images/image.png") 
+0

cảm ơn bạn rất nhiều vì câu trả lời của bạn, nó giải quyết được vấn đề của tôi ... trong trường hợp bạn có thời gian, hãy xem một câu hỏi khác của tôi liên quan đến câu hỏi này (thực sự tôi nghĩ câu trả lời cho bài đăng này cũng sẽ giải quyết vấn đề khác vấn đề, nhưng đây không phải là trường hợp vì vậy bây giờ tôi đã tạo ra một bài đăng thứ hai cho vấn đề khác này): https://stackoverflow.com/questions/46960392/how-to-create-file-on-server-with-file-path -trả lời –

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