Rails最佳实践:拆分JS&控制器的CSS文件或无关紧要?

时间:2014-01-29 20:59:14

标签: ruby-on-rails ruby-on-rails-3 ruby-on-rails-4

在我正在开发的Rails应用程序的第一次迭代中,我花了相当大的精力来通过控制器分割JS和CSS文件,确保只加载必要的JS和CSS,而不是单个连接文件使用Sprockets清单捆绑在一起生成。

我在布局中使用了这种技术:

  = stylesheet_link_tag "#{controller_path}_#{controller.action_name}", :media => "all" if MyApp::Application.assets.find_asset("#{controller_path}_#{controller.action_name}.css")
  = javascript_include_tag "#{controller_path}_#{controller.action_name}" if MyApp::Application.assets.find_asset("#{controller_path}_#{controller.action_name}.js")

我的问题是:这是必要的,还是我过早地(或过度)优化?这通常被认为是一种很好的做法,还是我在页面加载时不会产生不必要的额外工作? (我必须手动将每个文件添加到预编译列表中,这是一个巨大的痛苦并且不会感觉非常干燥)。我应该坚持使用默认的处理方式,即分割不同的文件,但将require tree保留在application.js / css文件中。

赞赏思想,资源和最佳实践!

2 个答案:

答案 0 :(得分:2)

这是反模式。

最好连接所有js和css文件,以便它们可以下载一次并由浏览器缓存。这在移动设备上尤为重要,因为它们从较少但下载量较大的情况中获益匪浅。将文件保持独立,但使用资产管道(链轮)连接,缩小和压缩生产中的资产。

答案 1 :(得分:1)

您正在做的缺点是您正在添加大量额外的HTTP请求。你必须做数学/基准测试,但我敢打赌你最好只需加载一次并让客户端缓存它。

+ 2美分。