2011-10-06 68 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>') 
相关问题