2012-03-28 2 views
3

私はBackbonejsを使用しています。私のアプリを起動してすべてのものをカスタム名前空間に入れる前にrequire.jsを使ってそれぞれの依存するバックボーンウィジェットをロードしています。 。私はジャスミンがこのローダーファイルをロードして、すべての依存するjavascripts(私のメインアプリの/ public/jsにあります)をピックアップしたいと思いますが、ジャスミンが/ publicについて知らないので/ jsディレクトリのポート8888にあります。これらのjavascriptをロードするにはどうすればよいですか? JavaScriptのそれぞれについてjasmineでrequire.jsを使用してスクリプトを返す404

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'); 
    }); 
    }); 

、私は取得しています: は、リソースの読み込みに失敗しました:サーバーは、404の状態(見つかりません)と答えhttp://0.0.0.0:8888/js/widget.js

答えて

2

をそれは/あなたのジャスミンローダーファイルように思わ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'); 
}); 

あなたは正しいURL /パスを指すように上記の「baseUrlに」プロパティを設定する必要があります。たとえば 、あなたのジャスミンSpecRunnerが中に配置されている場合:

ベース - main.js - JS - widget.jsは - をapp.js - Libsの - ジャスミン --- SpecRunner。 HTML

は、あなたがこのことができます

baseUrl: "../../" 

希望を設定する必要があります。