我偶尔会收到以下脚本加载错误(例如20次中的1次):
无法加载资源:服务器响应状态为404(未找到)
我已经阅读了其他各种帖子,但我没有立即看到我犯了哪些问题。这是我的设置:
我有一个带有data-main
的脚本标记,用于加载文件common.js
。这在几个页面中很常见:
<script data-main="path/to/common.js" src="path/to/require.js"></script>
common.js
是我通过require.config({...
然后,在单个页面中,为了加载页面特定的脚本,我执行以下操作:
<script type="text/javascript">
require(['common'], function() {
require(['/path/to/myScript']);
});
</script>
myScript
取决于common
正在加载。
尽管data-main加载了'async'但是我的外部需要定义 force 中的'common'依赖不会在'myScript'之前加载?
答案 0 :(得分:0)
您的数据主文件应该是脚本的唯一入口点。由于数据主文件是异步加载的,因此在加载数据主文件后,脚本标记脚本不能完全保证运行。
如果你根本无法使data-main成为唯一的入口点,我会在你加载require.js的地方定义一个函数,该函数在你的数据主文件的末尾执行。
<script>
// unfortunately global
window.initializer = function() {
require(['/path/to/myScript']);
}
</script>
<script data-main="path/to/common.js" src="path/to/require.js"></script>
然后在你的数据主文件中:
require.config = {
// ...
}
initializer()
我还会考虑将common.js重命名为config.js,因为这就是数据主文件应该用于的内容。