使用带有require.js和CDN的jquery UI

时间:2013-01-07 21:02:51

标签: backbone.js requirejs

我正在尝试使用requirejs来加载带有CDN的jqueryui,这是我的配置:

paths:
 jqueryui: "http://ajax.googleapis.com/ajax/libs/jqueryui/1.9.2/jquery-ui.min.js"

shim:
 jqueryui:
   deps: ['jquery']

现在在我的主模块中我只使用require ['jqueryui'],几乎是标准方式,其他一切从我的私有CDN加载很好,但requirejs也尝试从私有CDN加载jqueryui,似乎认为jqueryui是一个本地模块。不确定有什么问题。另外,我使用requirejs-rails gem作为require.js的包装。

2 个答案:

答案 0 :(得分:3)

在具有远程模块引用(如CDN内容)的项目上运行RequireJS优化器(r.js)时,应在构建配置中使用empty:方案。

来自documentation

  

您可能希望从内容交付网络(CDN)或其他域上的任何其他服务器加载脚本。 [...]但是,您更可能不希望在构建中包含该资源。如果脚本没有任何依赖关系,或者您不想包含其依赖关系或将以其他方式包含它们,那么您可以在路径配置中使用特殊的“empty:”方案,只是在执行时跳过该文件优化

请尝试在您的构建配置文件中指定:

paths: {
    jqueryui: "empty:"
}

答案 1 :(得分:1)

这里有requirejs-rails的作者。这似乎是r.js中的回归,它应该自动将empty:替换为配置中的CDN URL。在r.js 2.0及更高版本中发布jrburke/r.js#163时,删除了requirejs-rails对empty:的显式替换。