即使我添加了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请在适用的情况下投票。哦,并根据情况编辑它;)
答案 0 :(得分:7)
来自official docs quoted above并阅读:
注意:脚本标记require.js为您的数据主模块生成 包括async属性。这意味着你不能假设 数据主脚本的加载和执行将在之前完成 稍后在同一页面中引用的其他脚本。
<强>解决方案:强>
使用普通的旧<script>
标记同步包含配置文件:
<script type='text/javascript' src='js/require.js'>
<script src='js/config.js'></script>
这解决了这个问题。
其他信息
此外,您可以将配置对象定义为全局变量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>