2011-10-06 110 views
6

我想配置jasmine.yml(使用jasmine gem)使用從Google API提供的JQuery,而不是將其從本地下載到我的服務器。即:有沒有一種方法可以將外部Javascript作爲Jasmine的源代碼?

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

可惜,這似乎並沒有工作,因爲(按照在配置文件中的註釋),它是尋找相對src_dir文件路徑。那麼這是不可能的?

感謝

魯伊

+0

你有沒有找到一個解決辦法加載它?我猜測可能不鼓勵將外部文件包含到測試環境中,因爲它們幾乎「超出了你的控制範圍」。但在我的情況下,我希望在本地主機上包含一個帶有不同端口的文件 - 這意味着我有完全的控制權。 – polarblau

回答

3

我最後寫的JavaScript通過規範幫手包括 - 在我的情況下Livereload腳本:

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

這是一個有點哈克但工程。您可能想更準確地定義腳本插入的位置。

1

如果您使用的是jasmine-rails寶石,您可以創建自己的layouts/jasmine_rails/spec_runner.html,並在其中添加遠程依賴項。

!!! 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

您可以使用jQuery getScript

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

在你還希望包括jQuery的外部的情況下,你必須這樣

document.write('<script src="http://.../jquery.min.js</script>') 
相關問題