2013-07-23 3 views
1

Вот моя структура папок:Confuse о BaseUrl в requirjs

project 
|---src 
| |---lib/require.js 
| |---object/extend.js 
| |---main.js 
| 
|---index.html 

в main.js, импортировать require.js и main.js, успех:

<script type="text/javascript" src="src/lib/require.js" data-main="src/main"></script> 

затем в основной .js, я пытаюсь импортировать extend.js:

requirejs.config({ 
    baseUrl: 'src' 
}); 

require(["object/extend.js"], function (extend){ 

}); 

но это не удалось, это сказать 404, и я увидел, что запрос:

http://127.0.0.1:8000/object/extend.js 

кажется baseUrl не работает

так, что случилось с моим кодом? Как я могу позволить baseUrl работать?

+1

это не объясняет точную ошибку, которую вы видите, но вы не должны иметь .js в вашем требовании. Это должно быть 'require ([" object/extend "]' Также, я полагаю, что базовый url считается таким же, как расположение основного сценария данных, поэтому ваш baseUrl в этом случае может быть избыточным. – explunit

+0

@explunit: thank you , проблема в самом деле '.js'. Вы можете дать свой комментарий в качестве ответа, и я его приму – hh54188

ответ

0

У вас не должно быть .js в вашем запросе. Оно должно быть:

require(["object/extend"], function (extend){ 

}); 

Когда RequireJS видит точку в имени модуля он, кажется, предположить, что это полный URL и не обработает BaseUrl и т.д. Обратите внимание, однако, что вы все еще можете использовать точку во имя модуля, если вы определили его как отображение пути:

require.config({ 
    paths: { 
    'a.b': 'libraries/something/a.b' 
    } 
}); 

и потом требуют:

require(['a.b'], function (ab){ 

}); 
Смежные вопросы