2012-03-28 3 views
3

Backbonejs를 사용하고 있으며 내 애플 리케이션을 실행하기 전에 require.js를 사용하여 각 종속 백 위젯을로드하고 모든 경우를 사용자 정의 네임 스페이스 (이 경우 "Foo" . Jasmine이이 로더 파일을로드하고 모든 종속 자바 스크립트 (내 메인 앱의/public/js에 있음)를 선택하고 싶습니다. 그러나 Jasmine이/public에 대해 알지 못하기 때문에 모든 404가 표시됩니다./js 디렉토리의 포트 8888에 있습니다. jasmine에 이러한 javascript를로드하려면 어떻게해야합니까? 자원을로드하지 못했습니다 : 다음 자바 스크립트, 내가 갖는 각각에 대해 재시작을 위해 require.js와 jasmine을 함께 사용하면 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'); 
    }); 
    }); 

서버 그것은 것 같다 http://0.0.0.0:8888/js/widget.js

답변

2

(찾을 수 없음) (404)의 상태로 응답 당신의 재스민 로더 파일/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/경로를 가리 키도록 위의 "base을"속성을 구성해야합니다. 당신의 재스민 SpecRunner가에있는 경우 예를 들어, :

기본 - JS - - widget.js - 은 main.js는 app.js - libs와 - 재스민 --- SpecRunner. HTML

은 당신이 도움이

baseUrl: "../../" 

희망을 구성해야합니다.

관련 문제