Использование require.js с jasmine для загрузки скриптов, возвращающих 404 - PullRequest
3 голосов
/ 28 марта 2012

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

1 Ответ

2 голосов
/ 30 марта 2012

Может показаться, что ваш файл загрузчика 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 находится в:

base - main.js - js - widget.js - app.js - Libs - Jasmine --- SpecRunner.html

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

baseUrl: "../../"

Надеюсь, это поможет.

...