Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 什么';rake资产:precompile和RAILS_ENV=生产rake资产:precompile之间的区别是什么?_Ruby On Rails_Assets - Fatal编程技术网

Ruby on rails 什么';rake资产:precompile和RAILS_ENV=生产rake资产:precompile之间的区别是什么?

Ruby on rails 什么';rake资产:precompile和RAILS_ENV=生产rake资产:precompile之间的区别是什么?,ruby-on-rails,assets,Ruby On Rails,Assets,这两个任务之间有什么区别,为什么我需要在cap部署时添加RAILS_ENV=production 谢谢 第一个将在本地dev box(开发环境)上预编译您的资产,另一个将在生产环境上预编译您的资产。您在配置文件中的设置很可能不同,因此无论您将RAILS\u ENV设置为什么,它都将脱离环境配置中的配置。您需要指定RAILS\u ENV=production环境变量,以便config/environments/production.rb配置文件在预编译资源时使用。它通常包含资产管道的生产配置: c

这两个任务之间有什么区别,为什么我需要在cap部署时添加RAILS_ENV=production


谢谢

第一个将在本地dev box(开发环境)上预编译您的资产,另一个将在生产环境上预编译您的资产。您在配置文件中的设置很可能不同,因此无论您将
RAILS\u ENV
设置为什么,它都将脱离环境配置中的配置。

您需要指定
RAILS\u ENV=production
环境变量,以便
config/environments/production.rb
配置文件在预编译资源时使用。它通常包含资产管道的生产配置:

config.assets.js_compressor = :uglifier
config.assets.digest = true

如果省略
RAILS\u ENV=production
,则将使用
development
配置(
config/environments/development.rb

--

生产与本地的对比

您还需要考虑的是,如果您正在预编译<代码>产品<代码>环境,它基本上编译和配置该环境的文件

简单地说,这意味着如果您仅对生产有任何特殊条件/依赖项,那么使用
RAILS\u ENV=production
将在本地设置中使用这些条件/依赖项。这就是为什么要在
GEM文件中设置此设置的原因:

#Gemfile
group :production do
   gem 'xxxx'
end
--

SHELL变量

您需要欣赏的另一件事是
RAILS\u ENV
是一个。这意味着无论何时运行
shell会话
(即load
cmd
),都可以设置这些变量以提供特定的功能


关于
RAILS\u ENV
,这意味着您将能够告诉RAILS暂时以
生产模式运行;与在
development
testing
staging
模式下运行不同,基本上运行RAILS\u ENV=production rake assets:precompile on local或production,在public/assets中生成的文件应该相同吗?我可以在部署时同步它们吗?根据本地和服务器上安装的JavaScript运行时,它们可能差别不大。看看如何更好地进行本地资产预编译。@Andrey Chernih Rails指南缺少这样的内容。