【问题标题】:How is the :assets group in rails 3.1 handled by bundler?bundler 如何处理 rails 3.1 中的 :assets 组?
【发布时间】:2011-09-08 16:45:14
【问题描述】:

我不明白这个小组到底发生了什么,以及 bundler 正在用它做什么。它仅在开发模式下加载吗?如果我想创建一个新的环境类型,我应该如何处理这个组?等等。

group :assets do
  gem 'coffee-rails', "~> 3.1.0"
  gem 'uglifier'
end

【问题讨论】:

    标签: ruby-on-rails bundler


    【解决方案1】:

    处理:assets 组的代码放在config\application.rb 中。在 Rails 3.1 中是:

    if defined?(Bundler)
      # If you precompile assets before deploying to production, use this line
      Bundler.require *Rails.groups(:assets => %w(development test))
      # If you want your assets lazily compiled in production, use this line
      # Bundler.require(:default, :assets, Rails.env)
    end
    

    【讨论】:

      【解决方案2】:

      详细解释一下答案,来自rails asset pipeline guide

      a) 默认情况下,它们不包含在生产中:

      # Gems used only for assets and not required
      # in production environments by default.
      

      b) 如果您添加一个新的环境类型,您需要根据上面 Dmitry 的回答来处理它。也就是说,将其添加为需要它的组之一。

      【讨论】:

        【解决方案3】:

        我认为应该是,

        if defined?(Bundler)
          # If you precompile assets before deploying to production, use this line
          Bundler.require(*Rails.groups(:assets => %w(development test)))
          # If you want your assets lazily compiled in production, use this line
          # Bundler.require(:default, :assets, Rails.env)
        end
        

        因为该行有一些警告,

        Bundler.require *Rails.groups(:assets => %w(development test))
        

        所以我们使用,

        Bundler.require(*Rails.groups(:assets => %w(development test)))
        

        希望这会有所帮助:)-

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2011-12-28
          • 2011-12-10
          • 2011-09-04
          • 2011-09-28
          • 1970-01-01
          • 2011-10-25
          • 2011-12-08
          • 2012-02-21
          相关资源
          最近更新 更多