【问题标题】:Splitting Rails Javascript assets into head and body?将 Rails Javascript 资产拆分为头部和身体?
【发布时间】:2013-12-04 19:40:16
【问题描述】:

将 Javascript 资产拆分为需要在标头中加载的脚本和需要在正文中的脚本的最佳方法是什么?

例如,我现在有,

<%= javascript_include_tag "application", "data-turbolinks-track" => true %>

在我的主要应用程序布局中的正文标记的末尾。但我想包括类似的东西,

<%= javascript_include_tag "application_head", "data-turbolinks-track" => true %>

在我的标题标签内。

如何将我的application.js 拆分为两个单独的文件来完成此操作?请记住,我需要能够在两个文件中使用 require_tree 之类的方向,所以我不能单独包含每个脚本。

【问题讨论】:

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


    【解决方案1】:
    $ mkdir app/assets/javascripts/application
    $ mkdir app/assets/javascripts/application_head
    

    将head中你想要的东西复制到application_head目录中,其余的复制到应用程序中

    app/assets/javascripts/application_head.js:

    //= require_self
    //= require_tree ./application_head
    

    app/assets/javascripts/application.js:

    //= require_self
    //= require_tree ./application
    

    在 config/application.rb 中,添加

    config.assets.precompile << 'application_head.js'
    

    【讨论】:

    • 谢谢。我最终省略了 require_self 并且没有将 javascript 文件拆分为两个目录。
    • 如果您要使用 require_tree,我不确定我会如何在不拆分它们的情况下管理它。如果您需要每个清单中的整个 javascripts 目录,那是否意味着您只有两个版本的相同资产?
    • 只有一个脚本使用require_tree,在那个文件中我使用stub 来确保它没有加载其他sprockets 文件
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-08-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-29
    • 2012-11-10
    • 2014-02-21
    相关资源
    最近更新 更多