Ruby on rails Rails:部署第一个应用程序-生产模式

Ruby on rails Rails:部署第一个应用程序-生产模式,ruby-on-rails,ruby,deployment,production,Ruby On Rails,Ruby,Deployment,Production,我对这整件事很困惑。令人困惑的是,在开发整个应用程序时,它一直处于开发模式,这很好。现在我将部署它,在部署之前,是否需要对文件进行修改以将rails应用更改为生产模式,还是自动部署 我想我要问的是如何从一个环境切换到另一个环境?无需更改任何文件,只需在服务器上设置shell变量RAILS\u ENV=productionRAILS server-e production即可将您置于生产模式 还有 默认情况下,rails 3.1及更高版本将资产延迟到资产管道。因此,您要么需要运行rakeasset

我对这整件事很困惑。令人困惑的是,在开发整个应用程序时,它一直处于
开发
模式,这很好。现在我将部署它,在部署之前,是否需要对文件进行修改以将rails应用更改为
生产模式,还是自动部署


我想我要问的是如何从一个环境切换到另一个环境?

无需更改任何文件,只需在服务器上设置shell变量
RAILS\u ENV=production

RAILS server-e production
即可将您置于生产模式

还有

默认情况下,rails 3.1及更高版本将资产延迟到资产管道。因此,您要么需要运行
rakeassets:precompile
,要么在
config/environments/production.rb
中打开服务资产

# config/environments/production.rb
config.assets.compile = true
您还需要确保在
config/database.yml

除此之外,你还可以去:)


如果这是一个真正的生产框,您还可以将环境变量设置为“生产”。正如安纳托利·库库(Anatoliy Kukul)在另一个答案中所解释的那样。

我该怎么做?在候机楼?是的<代码>导出RAILS\u ENV=生产
。我还建议您不要在生产中使用rails。请尝试passenger server()或其他我运行该命令但未得到确认等。如何知道是否已完成?如果服务器重新启动,则需要再次
导出RAILS\u ENV=production
。您应该将其放入一个配置文件中,如
.bashrc
.zshrc
。此外,我会推荐瘦或独角兽而不是乘客。他们运行
rails s
并没有什么问题,只要知道它运行的是webrick。您可以始终指定要运行的服务器,例如,您可以只运行此命令
rails server thin-e production
,假设您的GEM文件中有thin,这将在一个命令中启动thin并将rails置于生产模式。嘿,mwoods79。您绝对不应该设置config.assets.compile=true。使用rake资源:预编译。考虑改变你的答案。请看这篇帖子:@Ben我的答案仍然正确。这是不是一个好主意是另一个话题。经过多年的咨询,我可以想到至少有两个大型企业应用程序可以做到这一点,而且做得很好。这两个应用程序还将
asset\u主机设置为使用CDN。这是一个伟大的战略。第一个请求编译资产并将其存储在CDN中。之后的所有资产请求都将从CDN获得服务。效果很好。