2013-08-16 2 views
0

Я встречаюсь с ситуацией, когда путь, заданный в конфигурации require.js, не выполняется, и у меня есть два догадки о том, почему нет. Я установил следующую запись в пути моих требуют конфигураций:Почему не задан путь в require.js config?

"initVars": "../initVars" 

А потом в модуле я в состоянии успешно обращаться к нему просто как "initVars"

Однако, я также пытаюсь для обозначения выше в блоке сценария непосредственно в HTML непосредственно под тег скрипта src'ing require.js (и, конечно, с указанием файла конфигурации в «данных, главный атрибут»):

//require(['initVars'], function(VARS) { // *doesn't work* 
require(['../initVars'], function(VARS) { 
    VARS.init({ 
     ENV: "${env}"; //"Play" framework "template" variable 
    }); 
}); 

Так мои две догадки о том, почему в этой конкретной ситуации я должен указать полный путь как следует, но я надеюсь, что кто-то может сказать мне наверняка:

  1. Относительные пути не выполняются в вызовах «требуют()», но только в вызовах «определить()»
  2. Относительные пути не выполняются, когда «требуют()» вызывается непосредственно в HTML, а не из src'd файла сценария

ответ

4

Смотрите раздел data-main Entry Point в документации:

Примечание: скриптовый тег require.js ge nerates для вашего основного модуля данных содержит атрибут async. Это означает, что вы не можете предположить, что загрузка и выполнение вашего основного сценария данных завершится до других сценариев, упомянутых позже на той же странице.

А также этот старый ответ, который был написан до того, как выше было добавлено в документации API:

Require.js bug random Failed to load resource

Смежные вопросы