有没有一种方法可以将外部Javascript作为Jasmine的源代码?
问题描述:
我想配置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文件路径。那么这是不可能的?
感谢
鲁伊
答
我最后写的JavaScript通过规范帮手包括 - 在我的情况下Livereload脚本:
document.write('<script src="http://' + (location.host || 'localhost').split(':')[0] + ':35729/livereload.js?snipver=1"></' + 'script>');
这是一个有点哈克但工程。您可能想更准确地定义脚本插入的位置。
答
如果您使用的是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
答
您可以使用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>')
你有没有找到一个解决办法加载它?我猜测可能不鼓励将外部文件包含到测试环境中,因为它们几乎“超出了你的控制范围”。但在我的情况下,我希望在本地主机上包含一个带有不同端口的文件 - 这意味着我有完全的控制权。 – polarblau