我正在尝试使用RequireJS加载浏览器模块,我遇到了一个有趣的问题。
我有3个名为a
,b
和c
的模块,这些模块包含以下简单的源代码:
define(['./b', './c'], function(c, b) {
console.log('A IS LOADED!');
return 'A';
});
define(function() {
console.log('B IS LOADED!');
return 'B';
});
define(function() {
console.log('C IS LOADED!');
return 'C';
});
当我自己加载模块a
时,一切正常,下面的代码运行并返回'A':
require(['./a'], function(a) {
console.log(a); // 'A'
});
但如果我需要两个不同的模块,其中一个已加载:
require(['./a', './c'], function(a, c) {
console.log(a, c);
});
RequireJS会出错:
C IS LOADED!
B IS LOADED!
require.js load timeout for modules: ./c
当它显然已经加载时。
以前有人遇到过这个问题吗?我该如何解决?
答案 0 :(得分:0)
根据RequireJS网站(http://requirejs.org/docs/errors.html#timeout):
可能的原因和解决方法:
其中一个列出的模块中存在脚本错误。如果浏览器的错误控制台中没有脚本错误,并且您正在使用 Firebug,尝试在Chrome或其他浏览器中加载页面 苹果浏览器。有时脚本错误不会出现在Firebug中。
模块的路径配置不正确。检查浏览器开发人员工具中的“网络”或“网络”选项卡,看看是否有 404用于映射到模块名称的URL。确保 脚本文件在正确的位置。在某些情况下,您可能需要使用 用于修复脚本URL解析的路径配置。