【问题标题】:Rails 3.1 Pipeline - Exclude Javascript FileRails 3.1 管道 - 排除 Javascript 文件
【发布时间】:2011-08-15 03:52:21
【问题描述】:

我想从管道中排除特定的 javascript 文件 (modernizr),因为我希望它单独加载。

我想在开头加载 Modernizr,并在结尾连接我的其余 javascript。

有没有办法在 3.1 中与资产管道中的要求相反? IE。排除?

提前致谢。

亚当。

【问题讨论】:

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


    【解决方案1】:

    我选择通过更改来保留 sprockets 功能

    //= require_tree
    

    //= require_directory .
    

    这会使 sprockets 自动加载同一目录中的任何文件,但不会进一步加载任何文件夹中的文件。

    这让我可以将 Modernizr.js 移动到 assets/javascripts/top 文件夹并在顶部手动加载它:

    <%= javascript_include_tag "top/modernizr" %>
    

    移动

    <%= javascript_include_tag "application" %>
    

    到我的 application.html.erb 文件的底部(结束 body 标记上方)

    【讨论】:

    • 应该是 'top/modernizr' 以便它找到您的文件 ;)
    • 谢谢亚当。另外,当我部署到生产环境时,需要在production.rb中添加这段代码config.assets.precompile += ['top/*.js', 'top/*.css'],否则在我的服务器会失败。
    【解决方案2】:

    我知道这是一个老问题,但谷歌上周把我送到这里,所以这不是一个过时的问题。我在别处找到的答案是the "stub" directive for sprockets。所以像

    //= require-tree .
    //= stub Modernizr
    

    这使 Modernizr.js 不受捆绑资产的影响。它可以包含在自己的标签中,就像原始答案一样。

    Sprockets 变更日志说“存根”是在 2012 年 1 月添加的,所以在第一次回答这个问题时它不可用,但我认为现在这是一个很好的答案。

    【讨论】:

    • @mcdave 是的,它真的很有帮助。
    • 这是处理单个文件时的最佳解决方案。
    【解决方案3】:

    转到您的 config/environments/production.rb 文件并添加以下行会更容易完成

    config.assets.precompile += %w( modernizr.js )
    

    然后,当您预编译资产时,现代化器将拥有自己的单独文件,您可以在脑海中使用。

    【讨论】:

    • 谢谢。这行得通。我选择做的是让我的根目录直接自动加载,并让任何单独的文件夹包含手动加载的文件。所以在供应商>资产> javascripts>顶部我放了modernizr.js。尽管 assets > javascripts 中的所有内容仍然加载了 sprockets。使用: //= require_directory 。在我的 application.js
    • 在 rails 4 中,这可以添加到 config/initializers/assets.rb 文件中,如下所示:Rails.application.config.assets.precompile += %w(modernizr.js)跨度>
    【解决方案4】:

    这些答案已经过时。只需将 active_admin.css.scssapp/assets/stylesheets 移动到 vendor/assets/stylesheets

    active_admin.js.coffee 执行相同操作(从app/assets/javascripts 移动到vendor/assets/javascripts)。

    您的资产将在需要时加载,您无需修改​​ applications.js 以适应 active_admin。

    this issue 中描述了此解决方案。希望这会有所帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-06-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多