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

Sha*_*adh 2 javascript config requirejs

即使我包含了我的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>
Run Code Online (Sandbox Code Playgroud)

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

但是,我用于jQuery的别名不起作用.在我的config.js文件中......

...
 paths: {
        jQuery: 'ThirdParty/jquery-1.8.3.min'
...
Run Code Online (Sandbox Code Playgroud)

我的index.html如下......

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

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

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

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

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

Sha*_*adh 7

上面引用官方文档和阅读:

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

解:

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

<script type='text/javascript' src='js/require.js'>
<script src='js/config.js'></script>
Run Code Online (Sandbox Code Playgroud)

这解决了这个问题.


附加信息

文件

此外,您可以在加载require.js之前将配置对象定义为全局变量require,并自动应用值.此示例指定在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>
Run Code Online (Sandbox Code Playgroud)