RequireJS零星的404

时间:2014-05-29 17:25:06

标签: javascript requirejs

我偶尔会收到以下脚本加载错误(例如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'之前加载?

1 个答案:

答案 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,因为这就是数据主文件应该用于的内容。