2012-03-30 33 views
9

Trong quan điểm mulitple tôi bao gồm một thư viện javascript bên ngoài với HTML này:Rails 3.1 - Làm cách nào để đưa các thư viện javascript bên ngoài vào nhà cung cấp/asset/javascript?

<script type="text/javascript" 
     src="http://static.jstree.com/v.1.0pre/jquery.jstree.js"> 
</script> 

Khi đọc qua Rails 3.1 tài liệu và thảo luận Asset Pipeline Tôi có ấn tượng rằng vendor/assets/javascripts là một nơi được rằng tập tin nên được tham chiếu. Tôi đoán rằng tôi có thể tải xuống một bản sao của tệp (jstree.js) và đặt nó vào thư mục đó. Tuy nhiên tôi muốn có nó tải ra khỏi trang web dự án thay vì làm một bản sao địa phương của nó.

Tôi phải đặt gì trong nhà cung cấp/asset/javascripts để kéo một bản sao của jstree.js khỏi máy chủ từ xa? Tôi có tạo tệp .js với một số loại mã tải từ xa không? Dường như có tất cả các cách tiếp cận và/hoặc nhầm lẫn về cách thực hiện tốt nhất điều này (xem danh sách câu trả lời dài cho câu hỏi này: How do I include a JavaScript file in another JavaScript file?.)

Có quy ước/thư viện/quy trình "Rails Standard" để làm điều này? Tôi là một neophyte javascript, vì vậy hãy rõ ràng, cảm ơn.

Trả lời

10

Không, không có cách nào bạn có thể đặt "tham chiếu" vào tệp từ xa trong thư mục nội dung. Bạn tải xuống bản sao và đưa vào nội dung hoặc tham chiếu tệp từ xa với thẻ <script>.

Có một bản sao không phải là một ý tưởng tồi. Ít nhất, bạn biết rằng nó hoạt động và các tập tin đã không thay đổi (trừ khi bạn thay đổi nó cho mình). Khi bạn tải một tập tin từ xa, tất cả các loại bất ngờ có thể xảy ra :)

+3

Cảm ơn. Muốn chắc chắn rằng tôi đã không bỏ lỡ một cái gì đó hiển nhiên và bạn đã xác nhận điều đó. Không hoàn toàn đồng ý có một bản sao cục bộ là một ý tưởng hay (ngoại trừ trong sản xuất.) Các thư viện đã học được những phiên bản "ổn định" không bao giờ thay đổi, vì vậy tôi không quá lo lắng về điều đó. Nếu Rails hỗ trợ một hệ thống "tham chiếu" (giống như một Gemfile), tôi có thể dễ dàng duy trì các thư viện JS khác nhau của mình trong dev/test/production. Tôi sẽ không phải tự tải xuống/sắp xếp các tệp và có thể tránh được sự lộn xộn của sprockets. Sẽ là siêu dễ dàng để dev/thử nghiệm đối với một phiên bản mới của thư viện từ xa. –

+2

Tôi không chắc rằng luôn luôn là một cách hay để lưu trữ tất cả các tệp JS của bạn cục bộ. Sử dụng các dịch vụ của bên thứ ba, như các nút xã hội, có thể rất nhiều trái tim đau khổ nếu họ thay đổi dịch vụ. –

+0

+1 trên tệp Gemfile cho các tệp JS được lưu trữ từ xa. @Don Thậm chí có thể bao gồm tải xuống từ xa chúng mỗi lần triển khai, nhưng tại địa phương phục vụ chúng thông qua sprockets. – Trip

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