当前位置 : 主页 > 网页制作 > Dojo >

如何使用带有rails 3.1资产管道和coffeescript的dojo工具包?

来源:互联网 收集:自由互联 发布时间:2021-06-15
我正在尝试使用dojo-toolkit作为rails 3.1 app上的JS框架,但我正在努力将dojo require结构与sprockets require和coffeescript合并.似乎dojo期望磁盘上的JS文件,但我猜它们是从coffeescript动态创建的. 想知道
我正在尝试使用dojo-toolkit作为rails 3.1 app上的JS框架,但我正在努力将dojo require结构与sprockets require和coffeescript合并.似乎dojo期望磁盘上的JS文件,但我猜它们是从coffeescript动态创建的.

想知道是否有人知道这两个要求是如何共存的.

我最近不得不使用rails 3.1和资产管道安装dojo.以下是我遵循的步骤:

1 /包括道场

将dojo SDK放在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'})

不要忘记资产上的领先’/’!

你可以使用Google CDN with a fallback:

script var djConfig = { baseUrl: '/assets/dojo/', modulePaths: {modules: '/assets/modules', widgets: 'widgets'} };
= javascript_include_tag "http://ajax.googleapis.com/ajax/libs/dojo/1.6.1/dojo/dojo.xd.js"
script ="typeof(dojo) === \"undefined\" && document.write(unescape('%3Cscript src=\"#{asset_path('dojo/dojo')}\"%3E%3C/script%3E'));".html_safe

第一行设置了您的djConfig.第二行实际上需要来自Google的dojo.第三是后备.

2 /包括您的基本文件

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

dojo.provide("myapp");

3 /与dojo.require一起玩

在1 /的djConfig中,我设置了modulePaths,将它们自定义为你想要的.在我的例子中,你可以将这两个放在你的文件中:

> app / assets / javascripts / modules /
> app / assets / javascripts / widgets /

如果我想要模块/ test.js,我只是这样做:

dojo.require("modules.test");

4 /使用coffeescript和ERB

只需添加正确的扩展名并启动右侧erb,如Rails documentation中所述.

我希望它对你有所帮助!

网友评论