2011-11-08 30 views
9

Tôi có một loạt tệp trong thư mục công khai/tải xuống/bây giờ làm cách nào để nhận url cho chúng?Đường ray 3.1: đường dẫn/url để lưu vào thư mục công khai

P.S. chỉ làm /downloads/xyz.tar.bz2 sẽ không làm, bởi vì ứng dụng có thể được triển khai tới URI phụ.

UPD Tôi đã tìm thấy một giải pháp đơn giản chết:


    def public_url(file) 
    root_url + file 
    end 
+2

như xa như tôi biết, các thư mục công trình công cộng khá nhiều giống như một tĩnh hệ thống tập tin. Vì vậy, nếu ứng dụng của bạn nằm trong một thư mục, như một miền, bạn sẽ cần phải thêm vào/downloads/ – agmcleod

+0

@Daniel Nếu bạn đang cố gắng truy cập URI đó từ một thứ khác ngoài giao diện người dùng của ứng dụng Rails, cho chúng tôi biết, vì điều đó cũng có thể đáng kể. – jefflunt

Trả lời

11

Tôi nghĩ normalocity là gần như ngay ở đây, nhưng nó khá nên root_path hơn Rails.root.

<%= link_to "The file", root_path+"/downloads/test.txt" %> 

Điều đó phải khớp với bất kỳ ứng dụng nào mà ứng dụng của bạn nằm bên dưới và sau đó nối đường dẫn đến tệp tĩnh với nó.

+1

chính xác. Tôi đã có root_url, nhưng root_path là imho hợp lý hơn cho helper này. cảm ơn bạn! – Daniel

+0

@Frost, tôi nghĩ bạn có thể thiếu dấu bằng ngay sau biểu tượng phần trăm đầu tiên của bạn. Nếu không có dấu bằng, không có gì sẽ được hiển thị. – Tass

+1

@Tass Cảm ơn bạn đã chú ý. Tôi vừa sửa nó. – Frost

0

link_to "The file", asset_path("downloads/test.txt")

  • asset_path Tính toán đường dẫn đến tài sản trong giám đốc công chúng kể từ Rails 4, tôi tin rằng
  • asset_path documentation
Các vấn đề liên quan