2012-03-28 4 views
3

Я использую Backbonejs, и я использую require.js для загрузки каждого зависимого виджета главной линии перед тем, как запустить мое приложение и поместить все в пользовательское пространство имен, в данном случае «Foo», , Я бы хотел, чтобы Jasmine загрузил этот файл загрузчика и взял все зависимые javascripts (расположенные в/public/js моего основного приложения), однако я получаю все 404, так как Jasmine не знает о/public/js на порт 8888. Как я могу получить жасмин для загрузки этих javascripts?Использование 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'); 
    }); 
    }); 

Для каждого из JavaScripts, я получаю: Не удалось загрузить ресурс: сервер ответил со статусом 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'); 
}); 

Вы должны настроить выше свойство «BaseUrl», чтобы указать на соответствующую URL/Path. Например, если ваш Жасмин SpecRunner находится в:

база - main.js - JS - widget.js - app.js - Libs - Жасмин --- SpecRunner. HTML

, то вам нужно настроить

baseUrl: "../../" 

Надеется, что это помогает.