资产管道javascript结构文件

时间:2012-01-10 21:26:04

标签: ruby asset-pipeline

目前我的application.js文件如下所示:

//= require_tree ./vendor
//= require_directory ./lib

我还有针对各个视图的单独JavaScript文件,例如home.js,user.js等。

人们会将这些文件放在application.js中吗?如果是这样,他们如何激活它们?我的大多数JavaScript都是从jQuery ready事件处理程序$(function (){ });

执行的

显然,如果它们都在同一个文件中,则不起作用。如果这些文件都在同一个文件中,我怎么能缩小这些文件并访问正确的就绪事件?

非常感谢任何帮助或提示。

1 个答案:

答案 0 :(得分:0)

拥有多个jQuery文档就绪处理程序是很好的,因为你不应该关心它们之间的顺序。但是,在尝试附加任何处理程序之前,您需要检查它们所处理的元素是否存在。

例如,在home.js中,您可能会有类似

的内容
if ($("#home_div").length) { // do some stuff on the home page } 

这样做比分割你的JS更好,只在某些页面上提供一些部分,因为使用编译的方法,你的用户只需要下载一次JS。我认为默认的rails 3.1 config应该缩小并连接你生产中的所有JS,而不是dev。如果您想手动启用它,

config.assets.compress = true # compress js into one file
config.assets.js_compressor = :uglifier # minify the JS (need the uglifier gem)  
config.assets.digest = true # append hashes to filenames so you can set far-expiry headers for caching

更多信息,请查看文档http://guides.rubyonrails.org/asset_pipeline.html#customizing-the-pipeline

的“自定义管道部分”

和这个相关的问题

How to properly work with jQuery in Rails 3.1 asset pipeline?