Mat*_*tty 23 ruby-on-rails bundler
在config/application.rbRails应用程序的文件中,有以下代码部分:
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
Run Code Online (Sandbox Code Playgroud)
我可能不清楚Bundler.require在做什么.我的印象是它需要Gemfile中的指定部分,但我不清楚为什么Bundler.require *Rails.groups(...)导致它预编译并Bundler.require(...)导致资产被延迟加载.
Bar*_*aun 49
这些行实际上并未改变资产的使用方式.
第一行,
Bundler.require *Rails.groups(:assets => %w(development test))
Run Code Online (Sandbox Code Playgroud)
仅assets在开发和测试环境中加载组中的gem .这意味着事情喜欢sass-rails和uglifier生产将不可用,然后意味着你将不能正确地编译/缩小/如果你正在做什么你就生产动态资产使用这些宝石.
另一方面,
Bundler.require(:default, :assets, Rails.env)
Run Code Online (Sandbox Code Playgroud)
将assets在任何环境中加载该组,使生产中的这些宝石可以进行资产编译/缩小/随时随地.
因此,如上所述,这些行实际上并没有改变资产管道的行为 - 它只是意味着如果您要将资产预编译用于生产,则应使用第一行,或者如果您要进行生产,则使用第二行在生产中懒洋洋地编译.
| 归档时间: |
|
| 查看次数: |
4888 次 |
| 最近记录: |