RequireJS:无法从require.config()运行路径

时间:2014-05-16 14:07:55

标签: javascript requirejs config

即使我添加了require-min.js,但它还没有从paths中获取require.config。我已使用data-main方法加载配置文件。

<!--when require.js loads it will inject another script tag
    (with async attribute) for scripts/main.js-->
<script data-main="scripts/main" src="scripts/require.js"></script>
  

您通常会使用数据主脚本来设置配置选项   然后加载第一个应用程序模块。 [...]

然而,我用于jQuery的别名不起作用。在我的 config.js 文件中...

...
 paths: {
        jQuery: 'ThirdParty/jquery-1.8.3.min'
...

我的 index.html 如下...

...
<script type='text/javascript' src='js/require.js' data-main='js/config.js'></script>
...
require(['jQuery'], function ($) {
...

这会在控制台上引发以下错误有时

GET http://<IPADDRESS>/js/jQuery.js 404 (Not Found) require.js:1895
Uncaught Error: Script error for: jQuery

我有时会说,因为,10次中有2次正确加载。我该如何解决这个问题?

免责声明:一个密切相关的问题是&#34; understanding requirejs paths&#34;。但是,答案并不完整,并没有成为这个具体问题的最佳选择。此外,它是来自官方文档的合理复制粘贴。 Mods请在适用的情况下投票。哦,并根据情况编辑它;)

1 个答案:

答案 0 :(得分:7)

来自official docs quoted above并阅读:

  

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

<强>解决方案:

使用普通的旧<script>标记同步包含配置文件:

<script type='text/javascript' src='js/require.js'>
<script src='js/config.js'></script>

这解决了这个问题。


其他信息

Docs

  

此外,您可以将配置对象定义为全局变量require   在加载require.js之前,并应用了值   自动。此示例指定要加载的某些依赖项   很快require.js定义了require():

<script>
    var require = {
        deps: ["some/module1", "my/module2", "a.js", "b.js"],
        callback: function(module1, module2) {
            //This function will be called when all the dependencies
            //listed above in deps are loaded. Note that this
            //function could be called before the page is loaded.
            //This callback is optional.
        }
    };
</script>
<script src="scripts/require.js"></script>