我对rails部署这件事感到非常困惑。在开发整个应用程序时,它一直处于development
模式,这很好。现在我要部署它,我是否需要修改文件以将rails应用程序更改为production
模式,还是部署会自动完成这一步骤?
我想知道如何切换环境?
我对rails部署这件事感到非常困惑。在开发整个应用程序时,它一直处于development
模式,这很好。现在我要部署它,我是否需要修改文件以将rails应用程序更改为production
模式,还是部署会自动完成这一步骤?
我想知道如何切换环境?
不需要更改任何文件,只需在您的服务器上设置shell变量RAILS_ENV=production
rails server -e production
命令会使你进入生产模式。
此外...
从 Rails 3.1 开始,资产文件默认由资源管道处理。因此,你需要运行 rake assets:precompile
或在 config/environments/production.rb
中开启资产服务。
# config/environments/production.rb
config.assets.compile = true
除此之外,您需要确保在config/database.yml
中正确设置生产数据库。
除此之外,您已经准备就绪 :)
如果这真的是一个生产环境的服务器,您还可以设置一个环境变量为'production',正如Anatoliy Kukul在另一个答案中所解释的那样。
asset_host
设置为使用CDN。这是一个很好的策略。第一个请求编译资产并将其存储在CDN中。之后的所有资产请求都从CDN提供服务。效果非常好。 - mwoods79
export RAILS_ENV=production
。我建议您不要在生产环境中使用rails s
。请尝试使用Passenger服务器(https://www.phusionpassenger.com/)或其他服务器。 - Anatoliy Kukulexport RAILS_ENV=production
。 您应该将其放在其中一个配置文件中,例如.bashrc
或.zshrc
。 此外,我建议使用thin或unicorn而不是passenger。 使用rails s
运行没有问题,只需知道它运行webrick即可。 您可以始终指定要运行的服务器,例如您可以仅运行此命令rails server thin -e production
,假设您的Gemfile中有thin,这将启动thin并在一个命令中将rails设置为生产模式。 - mwoods79