gpt4 book ai didi

ruby-on-rails - Rails/Bundler 预编译与延迟编译

转载 作者:行者123 更新时间:2023-12-03 11:07:59 25 4
gpt4 key购买 nike

config/application.rb在 Rails 应用程序中,有以下代码段:

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是在做。我的印象是它需要 Gemfile 中的指定部分,但我不清楚为什么 Bundler.require *Rails.groups(...)导致它预编译和 Bundler.require(...)导致 Assets 被延迟加载。

最佳答案

这些行实际上并没有改变您的 Assets 的使用方式。

第一行,

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

仅从 assets 加载 gem 在您的开发和测试环境中分组。这意味着诸如 sass-rails 之类的东西和 uglifier将无法在生产中使用,这意味着如果您使用这些 gem,您将无法在生产中正确编译/缩小/任何 Assets 。

另一方面,
Bundler.require(:default, :assets, Rails.env)

将加载 assets在任何环境中分组,使这些 gem 在生产中可用以进行 Assets 编译/缩小/任何动态。

因此,如上所述,这些行实际上并没有改变您的 Assets 管道的行为 - 它只是意味着如果您要为生产预编译 Assets ,则应该使用第一个,或者如果您要使用第二个在生产中懒惰地编译。

关于ruby-on-rails - Rails/Bundler 预编译与延迟编译,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7673988/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com