2012-04-21 34 views
9

Tôi đã tìm kiếm và tìm kiếm câu trả lời này. Nhưng tôi dường như không thể làm công việc này, vài giờ nữa. Xin hãy giúp tôi.cách tìm nạp hình ảnh từ thư mục tài sản/hình ảnh trong ứng dụng đường ray

tôi là một trang web của ứng dụng ray của tôi, tôi đang cố gắng để hiển thị một hình ảnh được lưu trong thư mục tài sản của tôi @app/assets/images/rails.png.

Tôi có một tập tin javascript với chức năng sau đó xây dựng html. Bên trong hàm này, tôi muốn chuyển liên kết tới hình ảnh. Đây là mã tôi hiện có.

function addToInfoWindow(infoWindowContent) 
{ 

infoWindowString = '<div class="infoWindow">'+ 
**'<img src="/assets/images/rails.png" />'+** 
'<p>'+infoWindowContent+'</p>'+ 
'<p><a href="http://www.google.com">See here</a></p>'+ 
'<p><a href="http://www.google.com">Upload a photo</a></p>'+ 
'</div>'; 
infoWindow.setContent(infoWindowString); 

} 

Như bạn có thể thấy ở phần trên, phần in đậm là vấn đề. Tôi đã thử một số kết hợp khác nhau của chuỗi url để truy cập tệp hình ảnh đó nhưng hình ảnh không hiển thị trong phần tử html.

Tôi đã xem và xem, đã thử các chức năng trợ giúp đường ray như image_url('rails.png'). Nhưng tôi phải đặt chúng vào chỗ sai. Ai đó có thể vui lòng giúp tôi. Vui lòng chỉ cho tôi vị trí, chức năng nào trong mã ở trên tôi cần phải thêm để tìm nạp hình ảnh tại /assets/images/rails.png để url của nó được đặt trong phần được đánh dấu ở trên và nó hiển thị trong chế độ xem của tôi.

Trả lời

23

Nếu bạn muốn bạn sử dụng đường ray giúp đỡ bạn cần phải "nâng cấp "tệp javascript của bạn để xóa.

Chỉ cần đổi tên chúng từ whatever.js thành whatever.js.erb. Bây giờ đường ray sẽ thực hiện tất cả các mã erb (công cụ giữa <% = và%>) trước khi phân phối tệp.

Vì vậy, bạn có thể làm như thế này:

<img src="<%= asset_path('rails.png') %>" /> 

More information, xem 2.2.3.

+1

Điều đó hiệu quả. Wow. Tôi đã dành 4 giờ cố gắng tất cả các loại công cụ và tất cả cùng nó chỉ vì các tập tin không có phần mở rộng !! Cảm ơn rất nhiều cho sự giúp đỡ của bạn – banditKing

+1

Nó luôn luôn như thế: P Vui mừng tôi có thể giúp đỡ. – klump

+1

Hãy nhớ nếu bạn đang sử dụng coffeescript, phần mở rộng để sử dụng erb là '.js.coffee' không phải là' .js.cofee.erb'. erb là tự động. Tôi biết, thật kỳ lạ như thế. Nhưng đó là cách nó hoạt động. Thông tin này sẽ giúp mọi người tiết kiệm thời gian. – ahnbizcad

3

Bạn sẽ không thể sử dụng các đường ray giúp đỡ như IMAGE_TAG trong javascript tinh khiết - append .erb và sử dụng asset_path (xem câu trả lời klump của)

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