Lúc đầu, tôi đã liên kết này qua biểu tượng twitter:Làm cách nào để đảo ngược tuyến đường một tệp tĩnh?
@{'/public/images/twitter-icon.png'/}
Nhưng bây giờ tôi muốn thể hiện một Twitter-, Facebook- hoặc LinkedIn biểu tượng tùy loại. Vì vậy, tôi đã tạo thẻ FastTag lấy loại làm thông số và mã trông giống như sau:
In the view:
#{myApp.icon contact.type/}
FastTag Java Code:
String type = (String) args.get("arg");
out.print("/public/images/" + type + "-icon.png");
Nó hoạt động tốt. Tuy nhiên, trên máy chủ xây dựng của mình, chúng tôi chạy ứng dụng có tiền tố trên uri như thế này
http://ourdomain.com/appname/...
Rõ ràng là/công khai/hình ảnh ... sẽ không hoạt động tại đây. Vì vậy, tôi đã tìm ra tôi phải hỏi Router để có địa chỉ thích hợp. Tôi đã thử những điều sau đây mà không thành công:
Router.reverse("/public/images/" + type + "-icon.png");
Router.reverse("/public/");
Router.reverse("staticDir:public");
Tất cả ba kết quả trong một NoRouteFoundException. Làm thế nào tôi có thể nhận được các tuyến đường chính xác cho các biểu tượng của tôi?
Ở routes nộp Tôi có tuyến đường mặc định cho các tập tin tĩnh
GET /public/ staticDir:public
Bất kỳ cơ hội bạn có thể thử và mở rộng câu trả lời này một chút không? Nó không thực sự nói bất cứ điều gì sử dụng ngay bây giờ:/ – obfuscation