这两个任务有什么区别?为什么在cap deploy时需要添加RAILS_ENV=production?
谢谢!
谢谢!
您需要指定RAILS_ENV=production
环境变量,以便在预编译资产时使用config/environments/production.rb
配置文件。该文件通常包含用于资产管道的生产配置:
config.assets.js_compressor = :uglifier
config.assets.digest = true
RAILS_ENV=production
,则将使用development
配置(config/environments/development.rb
)。RAILS_ENV
的环境配置来进行配置。本来想写成评论,但太长了...
--
生产环境与本地环境
在这方面,你还需要考虑的是,如果你为 production
环境进行预编译,它将会针对该环境编译及配置文件。
简单来说,这意味着如果你在生产环境下有任何特殊条件或依赖关系,使用 RAILS_ENV=production
将优先于你的本地设置。这就是为什么你会在你的 Gemfile
中有这样的设置:
#Gemfile
group :production do
gem 'xxxx'
end
--
Shell变量
你需要了解的另一件事是RAILS_ENV
是一个Shell变量。这意味着每当你运行一个shell会话
(即加载cmd
)时,这些变量可以被设置为提供特定的功能。
关于RAILS_ENV
,它意味着你可以告诉Rails暂时在production
模式下运行,而不是在development
、testing
或staging
模式下运行。