如何解决如何在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
,我知道可能已经晚了,但我可以帮助其他人。
我终于使它起作用,并在此处发布了说明。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。