如何在Rails Edge中用链轮玩Dojo?

| Rails 3.1 edge使用链轮来处理.js和.scss文件。 链轮使用注释来处理依赖项。 我将这三个文件夹(dojo dijit dojox)放在了vendor / assets / javascripts中。 然后在app / assets / javascripts / application.js中添加一行     // =需要dojo / dojo     console.log(dojo); 现在,dojo已合并到application.js中。 但是dojo本身具有依赖系统。当我需要更多的dojo模块时。它找不到正确的路径。     dojo.require(\“ dojox.grid.DataGrid \”);     // Webkit控制台中的错误:错误:无法加载\'dojox.grid.DataGrid \';上次尝试\'../ dojox / grid / DataGrid.js \'     // Rails服务器日志中的错误:在12月4日星期六01:26:05 +0800 2011年12月7日启动GET \“ / undefined ../ dojox / grid / DataGrid.js \” 这是两个不同的依赖系统。如何将它们放在一起?     
已邀请:
dojo.js
不会很自然地被重命名。这是因为Dojo初始化过程的一部分涉及在DOM中搜索负责自身加载的脚本标签。这样做有两个原因: 确定其
baseUrl
(如果尚未指定) 拾取脚本标签本身中指定的任何
djConfig
(或1.6+中的
data-dojo-config
)属性 搜索此脚本标记时,它将查找将
src
设置为
dojo.js
dojo.xd.js
的脚本;在您的情况下找不到它,因此失败了。 通过在加载Dojo的另一个
script
标记中以编程方式完全指定
djConfig
(或1.6+中的
dojoConfig
),以及在这些配置属性中手动指定
baseUrl
,应该可以解决这两个问题。 例如,如果原始帖子中提到的
application.js
位于
vendor/assets/javascripts
中,则可以尝试执行以下操作:
<script type=\"text/javascript\">
    //if you\'re using 1.5 or earlier, use djConfig instead of dojoConfig
    var dojoConfig = {
        //note that baseUrl points to the folder containing dojo.js, therefore the dojo folder
        baseUrl: \'vendor/assets/javascripts/dojo/\'
    };
</script>
<script type=\"text/javascript\" src=\"vendor/assets/javascripts/application.js\"></script>
有关dojo配置设置的更多信息:http://dojotoolkit.org/reference-guide/djConfig.html(实际上,该页面实际上在baseUrl下有一个有关重命名
dojo.js
的注释。)     
尝试将dojo文件添加到
/vendor/assets/javascripts
下的
dojo/scripts
目录中。在dojo目录中,在
dojo
目录中创建一个dojo.js文件,并将
//= provide \"scripts\"
放入该文件中。 然后在您的
application.js
文件中放入
//= require <dojo>
。请查看Sprockets网站http://getsprockets.org/以获取信息,但是应该可以。 尚未针对Rails 3.1和资产管道发布文档,因此很多此类内容都是您自己尝试得出的。     
嗯...为什么要在in21ѭ和应用中而不是than22ѭ中放置JavaScript?您在
public/javascripts
和include24ѭ中包含了任何内容,其中path_to_javascript将是
public/javascripts/dojo/DataGrid.js
中的
\"dojo/DataGrid\"
http://guides.rubyonrails.org/getting_started.html     
我知道可能已经晚了,但我可以帮助其他人。 我终于使它起作用,并在此处发布了说明。     

要回复问题请先登录注册