RequireJS路径配置引发Underscore 404错误,求问题原因与修正方案
解决RequireJS加载Underscore时404路径错误的问题
问题根源
你遇到的404错误核心原因是代码执行顺序的问题:
- 你通过
data-main="js/config"指定的配置文件是异步加载的,而紧接着写的require(['underscore'], ...)会在config配置生效前就执行。 - 此时RequireJS还没读取到
paths里的映射规则,就会按照默认行为去请求underscore.js,而不是你配置的underscore-min.js。
解决方案(推荐第一种)
方案1:将业务代码移到配置文件中执行
修改你的js/config.js,在配置完成后直接加载Underscore(或你的业务模块):
require.config({ baseUrl: 'js', paths:{ module1:"module1", underscore:"underscore-min" } }); // 配置生效后再加载Underscore require(['underscore'], function(_) { console.log('Underscore Js Loaded'); });
然后删除index.html里第二个<script>标签,只保留加载RequireJS的那一行:
<script data-main="js/config" src="require.js"></script>
方案2:确保配置加载完成后再执行require调用
如果你不想改动config.js,也可以在index.html里等待配置加载完成后再执行代码:
<script data-main="js/config" src="require.js"></script> <script> // 先加载配置文件,再执行业务逻辑 require(['js/config'], function() { require(['underscore'], function(_) { console.log('Underscore Js Loaded'); }); }); </script>
额外检查
最后确认你的underscore-min.js确实放在js目录下,文件名称和配置里的完全一致(注意大小写,比如Linux等区分大小写的系统中,Underscore-min.js和underscore-min.js是不同的文件)。
内容的提问来源于stack exchange,提问作者Rakesh Gangani
相关产品推荐
相关产品推荐

