3

我正在尝试使用 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 的包装器。

4

2 回答 2

3

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

文档中:

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

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

paths: {
    jqueryui: "empty:"
}
于 2013-01-08T03:01:30.697 回答
1

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

于 2013-03-08T20:48:42.280 回答