我正在使用Backbonejs并使用require.js加载每个依赖的骨干窗口小部件,然后启动我的应用程序并将所有内容放入自定义命名空间,在本例中为“Foo”。我想让Jasmine加载这个加载器文件并获取所有依赖的javascripts(位于我的主应用程序的/ public / js中),然而,我得到所有404的,因为Jasmine不知道/ public端口8888上的/ js目录。如何让jasmine加载这些javascripts?
Foo = {};
jQuery(function(){
var include = ['/js/widget.js','/js/delta_widget.js','/js/inbox.js','/js/time_widget.js','/js/high_stock_widget.js','/js/daily_summary_widget.js'];
require(include,function(){
$.getScript('/js/app.js');
});
});
对于每个javascripts,我得到: 无法加载资源:服务器响应状态为404(未找到)http://0.0.0.0:8888/js/widget.js
答案 0 :(得分:2)
看起来你的Jasmine加载器文件/ SpecRunner与require.js加载器(默认情况下为main.js)位于不同的目录中。您必须通过执行以下操作将require.js配置为使用不同的基本路径:
jQuery(function(){
require.config(
{
baseUrl: '/public'
});
var include = ['js/widget.js',
'js/delta_widget.js',
'js/inbox.js',
'js/time_widget.js',
'js/high_stock_widget.js',
'js/daily_summary_widget.js'];
require(include,function()
{
$.getScript('/js/app.js');
});
您必须配置上述“baseUrl”属性以指向正确的URL /路径。 例如,如果您的Jasmine SpecRunner位于:
基 - main.js - js - widget.js - app.js - 自由人 - 茉莉花 --- SpecRunner.html
然后你需要配置
baseUrl: "../../"
希望这有帮助。