2011-10-06 29 views
6

Tôi đang cố gắng định cấu hình jasmine.yml (sử dụng đá hoa nhài) để sử dụng JQuery được phục vụ từ Google API thay vì tải xuống cục bộ vào máy chủ của tôi. I.e .:Có cách nào để đưa Javascript bên ngoài làm nguồn vào Jasmine không?

src_files: 
    - ajax.googleapis.com/ajax/libs/jquery/1.6.4/jquery.min.js 

Thật không may điều này dường như không hoạt động, vì (theo nhận xét trong tệp cấu hình), nó đang tìm kiếm tập tin liên quan đến src_dir. Điều này là không thể sau đó?

Cảm ơn

Ruy

+0

Bạn đã bao giờ tìm thấy một giải pháp? Tôi đoán nó có thể không được khuyến khích để bao gồm các tập tin bên ngoài vào một môi trường thử nghiệm, vì chúng là khá nhiều "ngoài tầm kiểm soát của bạn". Tuy nhiên, trong trường hợp của tôi, tôi muốn bao gồm một tệp được lưu trữ trên máy chủ cục bộ với một cổng khác - nghĩa là, tôi có toàn quyền kiểm soát. – polarblau

Trả lời

3

tôi đã kết thúc bằng văn bản cho javascript bao gồm thông qua đặc tả helper - trong trường hợp của tôi kịch bản Livereload:

document.write('<script src="http://' + (location.host || 'localhost').split(':')[0] + ':35729/livereload.js?snipver=1"></' + 'script>'); 

Đó là một chút hacky nhưng hoạt động. Bạn có thể muốn xác định chính xác hơn nơi tập lệnh được chèn vào.

1

Nếu bạn đang sử dụng đá quý jasmine-rails, bạn có thể tạo riêng của mình layouts/jasmine_rails/spec_runner.html và thêm phụ thuộc từ xa tại đó.

!!! 5 
%html 
    %head 
    %title Jasmine Specs 
    = stylesheet_link_tag *jasmine_css_files 
    %script(src='//maps.googleapis.com/maps/api/js?sensor=false') 
    = javascript_include_tag *jasmine_js_files 
    %body 
    #jasmine_content 
    = yield 
0

Bạn có thể sử dụng jQuery getScript:

$.getScript(external_script_url, function(data, textStatus, jqxhr) { 
    some code to execute after script is loaded 
}); 

Trong trường hợp bạn cũng muốn bao gồm jQuery bên ngoài, bạn phải tải nó theo cách này

document.write('<script src="http://.../jquery.min.js</script>') 
Các vấn đề liên quan