【问题标题】:Asset pipelining for individual view with fingerprinting带有指纹识别的单个视图的资产流水线
【发布时间】:2013-10-24 00:24:50
【问题描述】:

我正在使用带有 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 文件来包含吗?

【问题讨论】:

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


    【解决方案1】:

    1.我需要预编译资产吗?

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

    2。它们会形成一个文件并在客户端发送吗?

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

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

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

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

    4.我应该使用基于控制器的资产并使用它们适当的 cs 和 js 文件来包含吗?

    这取决于您的应用程序。我的第一个问题是……为什么你有 100 多个 CSS 和 JS 文件?找到答案后,你就可以努力使系统以最高效的方式工作要求

    【讨论】:

    • 它是我下载的仪表板主题,它有很多小部件元素等,所以它有很多文件。如果我将它们单独包含在每个文件中。它会被指纹识别并有效地行动吗?
    • 我觉得应该没问题。你为什么不只包含主题的文件夹,如下所示:/*= require '/theme' - 这应该使它对你很有效
    • 但它不会为每个页面加载所有的 css 和 js 文件吗?
    • 嗯,这就是为什么查看您的系统很重要。显然,您不能在不调用 CSS 的页面上显示 CSS。这意味着,如果您希望所有这些文件出现在某个页面上,我们将能够为该页面进行配置。如果您正确设置资产管道,它会非常灵活,这就是为什么您应该解释何时加载 CSS 文件
    • 登录页面的示例我不需要加载引导日期选择器 js 和 css。但我需要一些 css ans js 用于标签。对于每个视图,我只需要很少的 css 和 js。
    猜你喜欢
    • 1970-01-01
    • 2011-11-14
    • 1970-01-01
    • 2014-05-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-17
    相关资源
    最近更新 更多