2012-01-10 116 views
0

此刻我的application.js文件看起来像这样:资产管道的javascript文件结构

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

我也有个人的看法,例如个人的JavaScript文件home.js,user.js等

有人把这些文件放在application.js中吗?如果是的话,他们如何激活它们?我的大部分JavaScript都是从jQuery ready事件处理程序中执行的$(function(){ });

很明显,如果它们全都在同一个文件中,这是行不通的。如何将这些文件缩小并访问正确的就绪事件(如果它们都在同一个文件中)?

任何帮助或建议非常感谢。

回答

0

有多个jQuery文档准备好处理程序是好的,因为您不应该关心它们之间的顺序。尽管如此,您仍然需要在尝试附加任何处理程序之前检查它们所处的元素是否存在。

例如,在home.js,你可能会有诸如

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

这样做是不是与编译的方法分手了你的JS,只有在一些网页上投放一些作品,因为更好的用户只必须下载JS一次。我认为默认的rails 3.1配置应该缩小和连接生产中的所有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?