0

我遇到了这样一种情况,即在 require.js 的配置中设置的路径没有被遵守,我有两个猜测为什么不被遵守。我在需要配置的路径中设置了以下条目:

"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 脚本文件中调用时,不支持相对路径
4

1 回答 1

4

请参阅文档中的data-main 入口点部分:

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

而且在将上述内容添加到 API 文档之前编写的这个较旧的答案:

Require.js bug random 加载资源失败

于 2013-08-16T13:12:49.140 回答