这两个任务之间有什么区别,为什么我需要在上限部署时添加RAILS_ENV =生产?
谢谢!
答案 0 :(得分:6)
您需要指定RAILS_ENV=production
环境变量,以便在预编译资产时使用config/environments/production.rb
配置文件。它通常包含资产管道的生产配置:
config.assets.js_compressor = :uglifier
config.assets.digest = true
如果省略RAILS_ENV=production
,则会使用development
配置(config/environments/development.rb
)。
答案 1 :(得分:1)
第一个将在您的本地开发框(开发环境)上预编译您的资产,另一个将在您的生产环境中预编译您的资产。您在配置文件中的设置很可能是不同的,因此它将根据您设置RAILS_ENV
的任何内容配置环境配置中的内容。
答案 2 :(得分:0)
写作评论但是太长了......
-
生产与本地
您还需要考虑的一点是,如果您正在为production
环境进行预编译,那么它基本上是编译和放大的。配置文件 该环境
简单地说,这意味着如果您只有生产的特殊条件/依赖项,使用RAILS_ENV=production
将在本地设置中使用这些条件/依赖项。这就是您在Gemfile
:
#Gemfile
group :production do
gem 'xxxx'
end
-
SHELL VARIABLES
您需要欣赏的其他内容是RAILS_ENV
是SHELL VARIABLE。这意味着无论何时运行shell session
(I.E load cmd
),都可以设置这些变量以提供特定功能。
与RAILS_ENV
相关,这意味着您可以告诉Rails暂时以production
模式运行;而不是在development
,testing
或staging
模式中运行