使用指纹识别单个视图的资产管道

时间:2013-10-23 15:56:45

标签: ruby-on-rails-4 asset-pipeline

我正在使用带有ruby 2.0的rails 4.0 我有100个js和css文件。我不希望他们在所有页面上加载。
所以我删除了application.js和application.css中的require_tree 我使用

包含了所需的css和js
<% javascript_include_tag "js_file" %>
<% stylesheet_include_tag "css_file" %>

我的问题是 1.我需要预编译资产吗? 2.它们是否会形成一个文件并在客户端发送? 3. turbo_link gem在这里有什么用以及如何帮助我? 4.我应该使用基于控制器的资产并使用适当的cs和js文件包含在内吗?

1 个答案:

答案 0 :(得分:1)

<强> 1。我是否需要预编译资产?

不,但这完全取决于您的生产环境。 Heroku等服务需要预编译资产

<强> 2。它们是否会形成一个文件并在客户端发送?

application.css中所需的资产将合并到该文件中。但是,如果您有特定于控制器的css / js,并相应地从您的布局中调用它们,则应将它们编译到各自的文件中

第3。 turbo_link gem是什么以及如何帮助我?

Turbolinks是一个宝石,旨在通过减少元素必须加载的次数来帮助提高页面加载时间。基本上,如果你使用相同的控制器,turbolinks只会用Ajax请求替换你的页面部分

所以不,Turbolinks不会帮助您编译/组织您的资产:)

<强> 4。我应该使用基于控制器的资产并使用适当的cs和js文件包含在内吗?

这取决于您的申请。我要问的第一个问题是.... 为什么你有100个CSS&amp; JS文件?找到答案之后,您就可以开始使系统工作到最有效的要求