如何将DojoToolkit与Rails3.1资产管道和coffeescript一起使用?

如何将DojoToolkit与Rails3.1资产管道和coffeescript一起使用?,dojo,ruby-on-rails-3.1,asset-pipeline,Dojo,Ruby On Rails 3.1,Asset Pipeline,我试图在rails 3.1应用程序上使用dojo toolkit作为JS框架,但我很难将dojo require结构与Sprocket require和coffeescript结合起来。dojo似乎希望JS文件在磁盘上,但我猜它们是从coffeescript动态创建的 想知道是否有人知道这两个require-s如何共存。我最近不得不安装带有rails 3.1和资产管道的dojo。以下是我为使其工作所遵循的步骤: 1/包括Dojo 将dojosdk放在vendor/assets/javascrip

我试图在rails 3.1应用程序上使用dojo toolkit作为JS框架,但我很难将dojo require结构与Sprocket require和coffeescript结合起来。dojo似乎希望JS文件在磁盘上,但我猜它们是从coffeescript动态创建的


想知道是否有人知道这两个require-s如何共存。

我最近不得不安装带有rails 3.1和资产管道的dojo。以下是我为使其工作所遵循的步骤:

1/包括Dojo

将dojosdk放在vendor/assets/javascripts下,以便在其中获得dojo、dijit和dojox文件夹。将其包含在模板中:

= javascript_include_tag "dojo/dojo", :'data-dojo-config' => %Q(baseUrl: '/assets/dojo/', modulePaths: {modules: '/assets/modules', widgets: '/assets/widgets'})
不要忘记资产上的领先“/”

您可以使用:

第一行设置您的。第二个事实上需要谷歌的dojo。第三是退路


2/包括您的基本文件

删除app/assets/javascripts/application.js中的所有“require”,并放置类似的内容(例如):


3/玩dojo.require

在1/中的djConfig中,我设置了modulePath,并根据需要自定义它们。在我的示例中,您可以将这两个文件放在其中:

  • 应用程序/资产/Java脚本/模块/
  • app/assets/javascripts/widgets/
如果我需要modules/test.js,我只需要:

dojo.require("modules.test");

4/使用咖啡脚本和ERB

只需添加正确的扩展并启动正确的erb,如中所述


我希望它能帮助你

ruby新手。我应该把
=javascript\u include\u标记“dojo/dojo”:'data-dojo-config'=>%Q(baseUrl:'/assets/dojo/',modulePath:{modules:'/assets/modules',widgets:'/assets/widgets'})
?此模板在哪里?在Rails中,它将位于您的
/views/layout/application.html.erb
文件中
dojo.provide("myapp");
dojo.require("modules.test");