Rails/Bundler precompile vs lazy compile

前端 未结 1 1960
南旧
南旧 2020-12-05 05:23

In the config/application.rb file in a Rails app, there\'s the following section of code:

if defined?(Bundler)
    # If you precompile assets be         


        
相关标签:
1条回答
  • 2020-12-05 05:45

    These lines don't actually change how your assets are used.

    The first line,

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

    only loads gems from the assets group in your development and test environment. This means that things like sass-rails and uglifier won't be available in production, which then means that you won't be able to properly compile/minify/whatever your assets on the fly in production if you're making use of those gems.

    On the other hand,

    Bundler.require(:default, :assets, Rails.env)
    

    will load the assets group in any environment, making those gems available in production to do asset compilation/minification/whatever on the fly.

    So, as stated above, these lines don't actually change the behaviour of your asset pipeline - it simply means that you should use the first if you're going to precompile your assets for production, or use the second if you're going to lazily compile in production.

    0 讨论(0)
提交回复
热议问题