为什么不在require.js配置中设置路径?

时间:2013-08-16 12:57:42

标签: javascript requirejs

我遇到的情况是,在require.js的配置中设置的路径没有被尊重,我有两个猜测,为什么不。我在require config的路径中设置了以下条目:

"initVars": "../initVars"

然后在一个模块中,我能够成功地将其称为"initVars"

但是,我也试图直接在脚本标记src'ing require.js下面的HTML中引用上面的脚本块(当然在'data-main'属性中指定配置文件) ):

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

所以我猜两个为什么在这种特殊情况下我必须指定完整路径如下,但我希望有人可以肯定地告诉我:

  1. 调用“require()”时不会考虑相对路径,但仅限于调用“define()”
  2. 直接在HTML中调用“require()”而不是从src'd脚本文件中调用相对路径

1 个答案:

答案 0 :(得分:4)

请参阅文档中的data-main Entry Point部分:

  

注意:为您的data-main模块生成的脚本标记require.js包含async属性。这意味着您不能假设数据主脚本的加载和执行将在稍后在同一页面中引用的其他脚本之前完成。

此前在上面编写的旧答案也被添加到API文档中:

Require.js bug random Failed to load resource