【问题标题】:Requirejs paths getting overwritten intermittentlyRequirejs路径被间歇性覆盖
【发布时间】:2016-08-26 19:05:46
【问题描述】:

我在 Requirejs config 中为车把和下划线配置了路径,如下所示:

require.config({
  baseUrl:          '/js/',
  paths: {

    /* Core Libraries */

    underscore :      'libs/underscore/underscore-min',
    backbone :        'libs/backbone/backbone-min',
    handlebars:       'libs/handlebars/handlebars.min'
  }

这就是我初始化requirejs的方式:

<script type="text/javascript" data-main="/js/main" src="/js/libs/require/require.js"></script>

当我多次刷新页面时,我收到一条错误消息: 未捕获的错误:“车把”的脚本错误。 再深入一点,我可以在 Chrome Dev 工具的网络选项卡中看到它基本上是模块找不到的 404: 404 未找到 - http://localhost:8888/js/underscore.js 以上路径不是require.config中配置的路径。 我无法准确指出问题,因为这只是间歇性地发生。 任何帮助深表感谢。 谢谢。

【问题讨论】:

  • 请编辑您的问题以显示您的script 元素并展示您如何启动应用程序的加载。

标签: requirejs


【解决方案1】:

Backbone.js 需要 underscore.js,因此如果您多次刷新页面,库可能无法以正确的顺序加载 请尝试以下垫片配置;

require.config({
   baseUrl:'js',
   paths: {

   /* Core Libraries */

   underscore :      'libs/underscore/underscore-min',
   backbone :        'libs/backbone/backbone-min',
   handlebars:       'libs/handlebars/handlebars.min'
  },
  shim:{
   'backbone': {
     deps: ['underscore']
   }
  }
}

【讨论】:

  • Backbone 调用define(['underscore', 'jquery', 'exports'], function(_, $, exports),所以依赖已经存在了。
  • define(['underscore' 表示尝试在baseUrl下找到它,比如js/underscore.js ?@Louis
  • 是的。数组是Backbone依赖的模块列表。
猜你喜欢
  • 2013-03-25
  • 2011-05-17
  • 1970-01-01
  • 2015-10-06
  • 2016-11-26
  • 2019-06-24
  • 2016-05-18
  • 1970-01-01
  • 2015-01-07
相关资源
最近更新 更多